我正在尝试通过其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。
答案 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