アプリケーションでアクションキャッシュを期限切れにするのに問題があります。
これが私のコントローラーです:
class ToplistsController < ApplicationController
caches_action :songs, cache_path: :custom_cache_path.to_proc
def custom_cache_path
"#{params[:when]}-#{params[:what]}-#{params[:controller]}-#{params[:action]}"
end
def songs
# ...
end
end
どういうわけかカスタムキャッシュパスをリセットできるようにする必要がありますが、その方法がわかりません。
私はすでにこのテクニックを使ってみましたが、成功しませんでした。私のキャッシュエンジンであるDalliは正規表現マッチャーをサポートしていないようです。
このコードを使用しようとすると、次のエラーが発生します。
expire_fragment(/songs/)
ActiveSupport::Cache::DalliStore does not support delete_matched
このコード行をデバッグに使用しようとしましたが、無視されています。
before_filter only: [:songs]
expire_fragment(custom_cache_path)
end
Rails 3.1.0.rc6、Dalli 1.0.5、Ruby1.9.2を使用しています。