何かのようなもの
Rails.cache.delete('site_search_form')
動作しないようです。これは可能ですか?ありがとう。
何かのようなもの
Rails.cache.delete('site_search_form')
動作しないようです。これは可能ですか?ありがとう。
ActionController::Base.new.expire_fragment(キー)
キャッシュ フラグメント エントリは、Rails.cache でアクセスするものとは少し異なるキーで作成されます。
代わりに使用してくださいexpire_fragment
(コントローラーに送信できます): http://api.rubyonrails.org/classes/ActionController/Caching/Fragments.html#M000438
Rails.cache.delete "views/site_search_form"
Rails 5 では、次の手順を実行して、に頼らずにキャッシュを破棄しましたskip_digest: true
。私たちの問題は、I18n 文字列の値を変更しても、計算されたキャッシュ ダイジェストに反映されないため、キャッシュが自動的に破棄されないことでした。
キャッシュ ブロックが定義されているビューを次に示します。
/ views/layouts/_footer.html.slim
- cache :footer do
span= t('shared.footer')
次に、Rails コンソールで次を実行します。
fragment = ActionController::Base.new.view_context.cache_fragment_name(:footer, virtual_path: 'layouts/_footer.html.slim')
ActionController::Base.new.expire_fragment(fragment)
cache_fragment_name
virtual_path
キーワード引数に基づいてダイジェストを見つけます。