我的Ruby on rails应用程序出了问题。 ApplicationController中的Ruby on Rails Cache。 数据无法获取,但它存在。
class ApplicationController < ActionController::Base
before_filter :init
def init
@setting = Rails.cache.read("data/setting")
if not @setting
@setting = Setting.find_create
Rails.cache.write("data/setting",@setting)
end
end
end
Development.log显示:
缓存读取:数据/设置
设置负载(0.5ms)SELECT * FROM&gt; “设置”限制1
缓存写入:数据/设置
为什么会这样?
答案 0 :(得分:0)
如果您在开发模式下运行应用,则可能会关闭缓存。检查config / development.rb文件以获取以下信息:
config.action_controller.perform_caching = false
要测试您的缓存,您可以将此值更改为true,也可以在启用缓存的其他环境中运行。我经常创建一个环境development_as_production,指向开发数据库,但是使用了我的production.rb设置。
答案 1 :(得分:0)
我是Json,我改名了。
但开发环境设置当前是:
config.action_controller.perform_caching = true
perform_caching正在进行中! 其他缓存可以工作。只有这个缓存不起作用(它在ApplicationController中)。
@setting = Rails.cache.read("data/setting")
if not @setting
@setting = Setting.find_create
Rails.cache.write("data/setting",@setting)
end
为什么呢? Rails.cache.read无法在ApplicationController中工作吗?