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/)

あ、ファイルキャッシュの場合です。

以上です。

参考
Expire Action Cache with Rake

何かありましたらコメントをどうぞ

comments powered by Disqus

人気の記事

950 Points チリ出身のギタリストが弾くドラゴンボールZがむちゃくちゃかっこいい…
774 Points Wordpress + Heroku + PostgreSQL + Amazon S3 = ¥0 / 無料でサイト運営
700 Points Rubyのチートシート 変数 / クラス / モジュール
524 Points Rubyのチートシート / アクティブサポート
451 Points 紙のデザイナーがウェブ開発できるようになるまでに必要なこと
435 Points Rails / Google Analyticsのデータを使って分析や管理画面のためのグラフをつくる
323 Points RailsとHerokuでノーティフィケーションをプッシュする / PusherとTurbolinksの兼ね合い
222 Points Rails / RSpec テスト書いたことない メンドクサイ(n´Д`)という時のチートシート
193 Points Rails / Ajaxを使って画面遷移しない一時保存機能をつける
193 Points Protractorでスクレイピングしてみた