コントローラ以外からページキャッシュを消したい。その2

Sweeperに頼ろうとするもcache_sweeperで指定してやらなきゃ動いてくれない(これもコントローラ内)ことに気がつき断念し、結局ActionController::Caching::Pages::ClassMethods.expire_pageを参考に自分で実装した。
と言っても
actionpack-1.13.5/lib/action_controller/caching.rb

 76         def expire_page(path)
77           return unless perform_caching
78
79           benchmark "Expired page: #{page_cache_file(path)}" do
80             File.delete(page_cache_path(path)) if File.exists?(page_cache_path(path))
81           end
82         end

のようになんにも特別なことはしていなかったんだけども。
周辺ソースから、キャッシュファイルの所在を特定するには

  • ActionController::Base.page_cache_directory
  • ActionController::Base.page_cache_extension

を使うと吉なことが分かった。よーっっし。

タイトルとURLをコピーしました