在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是这种情况的不同之处。
- Heroku 500内部服务器错误
- ActionView :: Template :: Error(PG :: UndefinedFunction:ERROR:运算符不存在:整数~~未知
- 是否有可能跳过Heroku上单个git推送的资产预编译步骤?
- 使用xcode 4.5.1在OSX Lion 10.8.2上编译eventmachine gem
- 在Procfile中启动多个worker(开发环境vs Heroku)
- 如何将pdftk添加到Heroku Cedar应用程序?
- 如何让Sidekiq在Heroku上工作?
- 如何在rails 4中管理多个css文件?
- 由LogEntries记录的Heroku路由器错误H13