@cates = Rails.cache.fetch :cates do Cate.all end
而单个对象是可以的 真奇怪
Rails 版本 4.2.4
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 哦哦。这样。明白了~~