在一个控制器中使用这样的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')
答案 0 :(得分:2)
您的代码实际上并没有缓存任何内容:return
从整个方法返回,因此在缓存中存储值的fetch
位永远不会执行,并且您对{的调用没有任何内容{1}}返回。
您可以使用read
或根本不使用任何内容:
next