看起来像 Heroku 缓存范围结果,我的问题是他们如何决定何时缓存、何时刷新范围结果以及如何正确使用范围。在我的代码中,我有一个 Question 模型的名称范围,如下所示
class Question < ActiveRecord::Base
scope :today, where('show_date = ?', Time.now.localtime("-07:00").strftime("%Y-%m-%d"))
end
它总是开始给我相同的缓存结果。我的猜测是,如果我更改问题数据,结果可能会更新。一个快速的研究给了我一个相关的主题:在 Heroku 上缓存 named_scope?.
我已经将代码更改为:
class Question < ActiveRecord::Base
def self.today
today_string = Time.now.localtime("-07:00").strftime("%Y-%m-%d");
where('show_date=?', today_string)
end
end
我想这总是会给我正确的结果而没有任何缓存。但我仍然想知道是否有更好的方法可以从范围缓存中受益,同时获得正确的结果?谢谢。