上个礼拜我指出一项新的 Active Record? 缓存特性 。这项特性帮助你将一个model全部的 Active Record? 调用存入缓存:
User.cache do me = User.find(1) # DB hit again = User.find(1) # Cache hit end
非常棒!但是它只对包含了缓存代码块的model提供缓存服务。如果您有几行会访问一连串model的代码,则需要写一个全新的缓存声明并且置顶:
ActiveRecord::Base.cache do # DB hits me = User.find(1) companies = Company.find(:all) # Cache hits me = User.find(1) companies = Company.find(:all) end
那么所有存在于以上代码块以内的model动态存取语句都会被记录到缓存里。
感谢 Yudi 提供本系列文档
原文作者是 Ryan Daigle, 请访问他的博客