Rails:缓存名称默认为模型的_id而不是cache_key

时间:2012-12-13 02:27:58

标签: ruby-on-rails caching memcached

我正在将一个模型实例传递给缓存函数,并希望Rails使用cache_key作为片段缓存的名称:

<% cache @ask do %>
 code
<% end %> 

但它使用._id修饰符:

Exist fragment? views/50c919b646b5001be700002f (0.8ms)
Read fragment views/50c919b646b5001be700002f (0.0ms)

(id看起来像这样,因为我使用的是mongoDB)。我正在使用Rails 3.0.5。 为什么会这样?

编辑:我正在使用mongoid 2.0.0

1 个答案:

答案 0 :(得分:0)

Mongoid版本2.4.0引入了cache_key函数:https://github.com/mongoid/mongoid/blob/master/lib/mongoid/document.rb#L242:L246

如果你无法升级,你可以在你的模式下这样做:

def cache_key
  # insert your cache key logic here
end