Rails 3 Cache返回Nil

时间:2015-01-28 21:08:02

标签: ruby-on-rails ruby

在一个控制器中使用这样的Rails内存缓存。

def form_config_cache
    Rails.cache.fetch("form_config", :expires_in => 12.hours) do
      puts 'Building cache...'
      form_config = s3_read_object('form_config.js')
      return JSON.parse(form_config)
    end
  end

这在定义它的控制器上工作正常。但是当我尝试从另一个控制器读取值时,它返回为零。任何人都可以解释可能发生的事情吗?以下是我试图在另一个控制器中读取它的方法。

form_config = Rails.cache.read('form_config')

1 个答案:

答案 0 :(得分:2)

您的代码实际上并没有缓存任何内容:return从整个方法返回,因此在缓存中存储值的fetch位永远不会执行,并且您对{的调用没有任何内容{1}}返回。

您可以使用read或根本不使用任何内容:

next