Rails Rails.cache.fetch 不可以缓存对象集合的么?

nine · 2015年10月13日 · 最后由 hging 回复于 2015年10月13日 · 1720 次阅读
@cates = Rails.cache.fetch :cates do 
  Cate.all 
end

而单个对象是可以的 真奇怪

Rails版本4.2.4

共收到 6 条回复

try

@cates = Rails.cache.fetch :cates do 
  Cate.all.to_a
end

可以缓存,但是不建议这么干。

但是数据量大时(比如几千个 Cate 的数据),一堆 ActiveRedocrd 对象的 序列化/反序列化 非常的耗时,不划算。

自己做个测试试试。

#1楼 @libuchao 3x~ 搞定,原来如此

#2楼 @xiaoronglv 3x~,只是示例代码,一般都是带limit的,比如Article.limit(10)这类的,不to_a 没法缓存啊。有空我会做下测试。

我记得就算你不加cache默认active record也会给你cache的吧.

#4楼 @hging 我说的不是ActiveRecord的,一次http请求内的 SQL查询缓存。 是放到redis里的那种。

#5楼 @nine 哦哦. 这样. 明白了~~

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