首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Rails查询中缓存数据库生成的列表

如何在Rails查询中缓存数据库生成的列表
EN

Stack Overflow用户
提问于 2016-11-24 02:49:55
回答 1查看 347关注 0票数 0

如何在Rails查询中缓存数据库生成的列表?

代码语言:javascript
复制
@total_untagged = Rails.cache.fetch("tags_controller/untagged/@total_untagged", expires_in: 1.hour) do
        InventoryApi::BaseEntity\
          .joins(@object_type.to_sym)
          .includes(:base_entities_tags)
          .where({ base_entities_tags: { base_entity_id: nil }})
          .size.to_int
        end

此代码加载InventoryApi::BaseEntity模型,并将其保存在缓存中,键值为:

代码语言:javascript
复制
tags_controller/untagged/@total_untagged

缓存的结果是一个实例,它是从数据库延迟加载的,而不是像具有字段值的类那样立即加载。

一旦它被延迟加载,当缓存被读取时,它需要再次读取数据库,实际上,我没有获得任何缓存。

如何缓存最终结果,而不是数据库关系?

EN

回答 1

Stack Overflow用户

发布于 2016-11-24 04:55:17

一旦它被保存到缓存中,它就不需要再次读取数据库,直到缓存失效。如果你在本地使用它,这里有一些你应该记住的东西。这是来自http://guides.rubyonrails.org/caching_with_rails.html的。

要尝试本地缓存,您需要在本地环境中启用缓存,方法是在相关的配置/

/*.rb中将config.action_controller.perform_caching设置为true。

更改config.action_controller.perform_caching的值只会对操作控制器组件提供的缓存产生影响。例如,它不会影响低级缓存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40772140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档