我有一个如下所示的范围:
scope :top, order('score DESC')
它在我的 Controller 中使用如下:
def top
@users = User.top
render "list"
end
现在,这个作用域似乎无缘无故地被缓存了。如果我加载首页,添加一个用户并重新加载它,该用户不会出现在列表中。
但是,如果我这样做:
def top
@users = User.order('score DESC')
render "list"
end
结果不会被缓存。这里发生了什么?我正在使用 Ruby 2.0.0 和 Rails 4.0.0
最佳答案
我认为如果你使用 lambda,那么它不应该被缓存:scope :top, lambda { order('score DESC') }
但话说回来,我对新的 Rails 4 范围缓存不太熟悉。
关于ruby-on-rails - 为什么我的范围被缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18046704/