Rails / Rakeタスクからだとキャッシュがうまく消えてくれない時の対処法
ちょっとハマッた。
Viewファイルにこんなキャッシュを設定。
ruby
1
2
3
<% cache('all_products') do %>
...
<% end >
Rakeタスクの中で、
expire_fragment('all_products')
で行けるだろうと思っていたけど、そうはいかなかった。
ActionController::Base.new.expire_fragment('all_products')
もだめだった。
結局、こんな感じ。
ruby
1
2
cache = ActionController::Base.cache_store
cache.delete_matched(/all_products/)
あ、ファイルキャッシュの場合です。
以上です。