Rails.cache.read在rails中返回nil,但在控制台中不返回

时间:2011-06-27 23:37:51

标签: ruby-on-rails ruby-on-rails-3 caching memcached

我正在尝试通过其api密钥缓存和读取用户对象。使用缓存很好,我可以在rails控制台中读取缓存,但无论出于何种原因,在rails应用程序中执行相同的Rails.cache.read始终返回nil。

这是我正在做的一个例子。这是before_filter函数。

def authKey
  #?api=ce6f95a8bf7f9861330ede58f8972981
  key = params[:api]
  cu = Rails.cache.read(key)

  #<do some logic>
  logger.debug("CACHING USER #{key}")
  Rails.cache.write(key, user)

cu将始终为nil,但该对象将存在于memcache中。还有其他人遇到过这类问题吗?我正在使用启用压缩的dalli gem。

2 个答案:

答案 0 :(得分:4)

我认为默认情况下,rails缓存在开发和测试和生产中都是关闭的。检入config / environments / development.rb并查看config.cache_classes设置为...

答案 1 :(得分:0)

默认情况下,对于开发环境,缓存处于关闭状态。 添加&#39; config.action_controller.perform_caching = true&#39; to config / environments / development.rb应解决问题。

http://guides.rubyonrails.org/caching_with_rails.html#basic-caching