我尝试通过API键缓存和读取一个用户对象,这个用户对象缓存得很好,我可以在rails控制台中读取该高速缓存,但是不管什么原因,Rails.cache.read在rails应用程序中执行完全相同的www.example.com总是返回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。
3条答案
按热度按时间mxg2im7a1#
我相信Rails缓存在开发时是默认关闭的,在测试和生产时是打开的。检查config/environments/development.rb,看看
config.cache_classes
设置为什么...f3temu5u2#
默认情况下,开发环境的缓存是关闭的。将“config.action_controller.perform_caching = true”添加到config/environments/development.rb中应该可以解决此问题。
http://guides.rubyonrails.org/caching_with_rails.html#basic-caching
gdx19jrr3#
在开发模式下,您可以通过运行
rails dev:cache
来切换缓存