为什么Rails.cache.read无法在ApplicationController中获取任何内容?

时间:2009-05-02 06:54:01

标签: ruby-on-rails caching

我的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
  缓存写入:数据/设置

为什么会这样?

2 个答案:

答案 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中工作吗?