MongoDB Mongoid::Criteria 不使用缓存

suupic · 2012年05月01日 · 最后由 suupic 回复于 2012年05月01日 · 3299 次阅读

favorite 模型中

def self.content
  Rails.cache.fetch("favorite:content/{self.id}", :expires_in => 1.days ) {
    self.content
  }
end




非 Criteria 请求可以用到 cache,比如:

Favorite.limit(5).collect {|f| f.content}




Criteria 请求,则每次都直达数据库,比如:(favorites 是个 Mongoid::Criteria)

favorites = User.first.favorites.desc(:created_at).page 1
favorites.collect {|f| f.content }




这个问题怎么解决?搜了一圈没找到答案

类变量和实例变量搞错了

class Favorite
  def content
    Rails.cache.fetch("favorite:content/#{self.id}", , :expires_in => 1.days ) {
      self[:content]
    }
  end
end

需要 登录 后方可回复, 如果你还没有账号请 注册新账号