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

u3r8eeie  于 2023-01-18  发布在  Ruby
关注(0)|答案(3)|浏览(130)

我尝试通过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。

mxg2im7a

mxg2im7a1#

我相信Rails缓存在开发时是默认关闭的,在测试和生产时是打开的。检查config/environments/development.rb,看看config.cache_classes设置为什么...

f3temu5u

f3temu5u2#

默认情况下,开发环境的缓存是关闭的。将“config.action_controller.perform_caching = true”添加到config/environments/development.rb中应该可以解决此问题。
http://guides.rubyonrails.org/caching_with_rails.html#basic-caching

gdx19jrr

gdx19jrr3#

在开发模式下,您可以通过运行rails dev:cache来切换缓存

相关问题