上个礼拜我指出一项新的 ActiveRecord 缓存特性 。这项特性帮助你将一个model全部的 ActiveRecord 调用存入缓存:
1 2 3 4 |
User.cache do me = User.find(1) # DB hit again = User.find(1) # Cache hit end |
非常棒!但是它只对包含了缓存代码块的model提供缓存服务。如果您有几行会访问一连串model的代码,则需要写一个全新的缓存声明并且置顶:
1 2 3 4 5 6 7 8 9 10 11 |
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动态存取语句都会被记录到缓存里。
原文作者是 Ryan Daigle, 请访问他的博客
本片译文的原文地址:http://ryandaigle.com/articles/2007/2/21/what-s-new-in-edge-rails-expanded-caching-scope



