片段快取

由 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