Rails 3缓存未命中activerecord

时间:2011-04-27 13:13:25

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

我遇到的情况是,对缓存的ActiveRecord对象的每个请求都会导致缓存未命中。我正在尝试缓存当前用户的权限结构:

my_permissions = Rails.cache.fetch("#{self.id}.permissions") do      
  self.permissions.all
end

我发现每个页面请求都在查询数据库以获取我的权限。如果我将代码更改为任意的

my_permissions = Rails.cache.fetch("#{self.id}.permissions") do      
  "I have no permissions"
end

这将正确地存在于缓存中。我可以证明这一点,因为如果我将任意行更改回我的ActiveRecord调用,它将因缓存对象错误而继续出错。我还检查了创建的缓存文件,它正确地存储为两个值,我可以看到看起来像我的权限对象,但它继续命中数据库而不是缓存。我错过了什么?

0 个答案:

没有答案