在Heroku上缓存named_scope?

我有一个名称范围,它将查询结果作为参数:

scope :current_budget, where(:budget_review => Appconfig.budget_status) 

方法budget_status本身定义为

 def self.budget_status Appconfig.find_by_name('reviewed_budget').value=="1" ? true : false end 

在本地测试时,如果我更改了“Viewed_budget”参数的值,然后再次调用范围,一切正常。

但是在Heroku上,即使我更改了参数,也会给我相同的结果。 我试图在Heroku上显示Appconfig.budget_status的值,当我更改设置时它会改变。

仍然,named_scope似乎没有考虑到这一点。

这里有一些缓存技巧吗? 如果是这样,我如何在这种特定情况下摆脱这种情况? 否则,有没有人知道可能出现什么问题?

谢谢,p。

当你在本地测试时,我假设你运行一个开发环境,它会在每次调用时重新加载你的所有代码,并因此避免这个问题。 在生产(Heroku)中,如果像你当前那样使用它,它将缓存范围,而不是结果,而不是查询。

要确保查询未缓存,您可以使用以下语法:

 scope :current_budget, lambda { where(:budget_review => Appconfig.budget_status) } 

lambda是这种情况的不同之处。