Whats New in Edge Rails: Expanded Caching Scope

对一个model的查询结果进行缓存:

ruby 代码
  1. User.cache do  
  2.   me = User.find(1)   # DB hit   
  3.   again = User.find(1)   # Cache hit   
  4. end  

block中的查询结果将会被缓存。


假设某个查询关联到多个model:

ruby 代码
  1. ActiveRecord::Base.cache do  
  2.   
  3.   # DB hits   
  4.   me = User.find(1)   
  5.   companies = Company.find(:all)   
  6.   
  7.   # Cache hits   
  8.   me = User.find(1)   
  9.   companies = Company.find(:all)   
  10.   
  11. end  
block中所有的active record的查询结果都会被缓存。

你可能感兴趣的:(cache,Ruby,ActiveRecord,Rails)