コンテンツの一部分だけ有効期限付きのキャッシュをする場合

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)
で保存される。