あなたのFooモデルでは、おそらくこのようなものが必要です
class Foo < ActiveRecord::Base
def self.find_some_foo(foo_id)
Rails.cache.fetch("foo_#{foo_id}", expires_in: 7.days) do
begin
self.where(:id => foo_id)
rescue Exception => e
logger.info "Exception fetching Foo ID: #{e.to_s}"
nil
end
end
end
end
config.cache_store=
ファイル内を呼び出して、アプリケーションのデフォルトのキャッシュストアを設定します。たとえばconfig/application.rb
、Alex Ghiculescuが提供するリンクには、セクション2.1に適切な情報があります。config.cache_store = :memory_store
cache_storeに存在しないキーをフェッチしようとすると、railsキャッシュストアに自動的にデータが入力されます。このため、キーの適切な命名規則を考え出すことが重要です。基本を確立したら、で適切な変更を加えることで、さまざまなキャッシュストアを簡単に切り替えることができconfig/application.rb
ます。選択肢には、メモリストア、ファイルストア、memcache、またはキャッシュストアの任意の組み合わせがあります。
Railsのメモリ内キャッシュをフラッシュするには、Railsサーバーを再起動します。ファイルキャッシュをフラッシュするには、と入力しrake tmp:clear
ます。memcacheをフラッシュするには、このリンクを参照してください。