片段缓存
由 ActiveSupport 提供的 Rails.cache
可用于跨请求缓存任何可序列化的 Ruby 对象。
要从缓存中获取给定键的值,请使用 cache.read
:
Rails.cache.read('city')
# => nil
使用 cache.write
将值写入缓存:
Rails.cache.write('city', 'Duckburgh')
Rails.cache.read('city')
# => 'Duckburgh'
或者,使用 cache.fetch
从缓存中读取值,如果没有值,则可以选择写入默认值:
Rails.cache.fetch('user') do
User.where(:is_awesome => true)
end
传递的块的返回值将分配给给定键下的缓存,然后返回。
你还可以指定缓存过期时间:
Rails.cache.fetch('user', :expires_in => 30.minutes) do
User.where(:is_awesome => true)
end