In Rails 5 I took the following steps to bust the cache without resorting to skip_digest: true. Our problem was that changing the value of I18n strings does not reflect in the computed cache digest so the cache would not get busted automatically.
Here is the view where the cache block is defined:
/ views/layouts/_footer.html.slim
- cache :footer do
span= t('shared.footer')
Then in rails console I run:
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 will figure out the digest based on the virtual_path keyword argument.
ActionController::Base.new.expire_fragment(key)
Cache fragment entries are created with a slightly different key than what you access with Rails.cache.
Use
expire_fragment
instead (you can send it to a controller): http://api.rubyonrails.org/classes/ActionController/Caching/Fragments.html#M000438In Rails 5 I took the following steps to bust the cache without resorting to
skip_digest: true
. Our problem was that changing the value of I18n strings does not reflect in the computed cache digest so the cache would not get busted automatically.Here is the view where the cache block is defined:
Then in rails console I run:
cache_fragment_name
will figure out the digest based on thevirtual_path
keyword argument.