我在这里提出了很多关于缓存的问题,但没有一个答案。所以也许我会对此有答案。
我的搜索模型代码如下:
users = users.where('id >?', my_value)
Rails.cache.fetch('my_cached',expires_in: 3.minutes) do
users = users.order('current_sign_in_at DESC')
end
有人可以解释一下这是做什么的。我认为这将返回已排序的用户表并将其放入缓存中 3 分钟,因此当我需要下一次搜索时,如果它没有过期,它将返回我的 my_cached 结果。
但它不是那样工作的。当某些用户登录和 current_sign_in_at 更改时 - 缓存被覆盖并返回新查询。