コンテンツの一部分だけ有効期限付きのキャッシュをする場合
RailsのPlug-inにあるtimed_fragment_cacheを使うと楽
インストール
#cd vendor/plugines #git clone git://github.com/rlivsey/timed_fragment_cache.git
コントローラ側
def index when_fragment_expired 'キャッシュ名', キャッシュ時間.minutes.from_now do キャッシュしたいアクションを記述 end end
例:
def index when_fragment_expired 'hoge_index', 60.minutes.from_now do キャッシュしたいアクションを記述 end end
ビュー側
<%- cache 'キャッシュ名', キャッシュ時間.minutes.from_now do -%> キャッシュしたいHTML部分を記述 <% end %>
例:
<%- cache 'hoge_index', 60.minutes.from_now do -%> キャッシュしたいHTML部分を記述 <% end %>
キャッシュ名にはコントローラ側とビューで同じ名前を
キャッシュ時間には数字で分を記述。例の場合は60分かキャッシュされる。
60分たつかキャッシュファイルを削除すると、再作成される。
キャッシュは
tmp/cache/
以下に
キャッシュ名.cache (例:hoge.cache)
キャッシュ名_meta.cache (例:hoge_meta.cache)
で保存される。