加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 如何在Ruby on Rails 3中缓存查询

发布时间:2020-12-16 19:31:06 所属栏目:百科 来源:网络整理
导读:我在我的应用程序中有以下查询 @categories = Category.joins(:posts).select('distinct categories.*').order('label') 由于类别显示在每个页面上,因此会在每个页面视图上加载此查询.这对我来说似乎很混乱,因为类别列表经常没有得到更新.是否有一种很好的方
我在我的应用程序中有以下查询
@categories = Category.joins(:posts).select('distinct categories.*').order('label')

由于类别显示在每个页面上,因此会在每个页面视图上加载此查询.这对我来说似乎很混乱,因为类别列表经常没有得到更新.是否有一种很好的方法来缓存查询?我试过了

Category.cache do
      @categories = Category.joins(:posts).select('distinct categories.*').order('label')
    end

但我仍然看到每次从开发日志中的数据库加载查询.

解决方法

在您的控制器中,您可以尝试以下方法:
@categories = Rails.cache.fetch('categories',:expires_in => 24.hours) { Category.joins(:posts).select('distinct categories.*').order('label') }

这将只读取以查看以下数据块“类别”是否已缓存且未过期.如果在24小时后过期,则将查询模型并将新记录写入Rails缓存.

有关更多信息,我按照以下guide.

试试看.我这样工作.希望有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读