ruby-on-rails - guide - ruby controllers
¿Cómo caduco un fragmento almacenado en caché desde la consola? (4)
Algo como
Rails.cache.delete(''site_search_form'')
no parece funcionar es posible? Gracias.
ActionController :: Base.new.expire_fragment (clave)
En Rails 5, tomé los siguientes pasos para skip_digest: true
la memoria caché sin tener que recurrir a skip_digest: true
. Nuestro problema fue que el cambio del valor de las cadenas I18n no se refleja en el resumen de la memoria caché computada, por lo que la memoria caché no se rompe automáticamente.
Aquí está la vista donde se define el bloque de caché:
/ views/layouts/_footer.html.slim
- cache :footer do
span= t(''shared.footer'')
Luego en la consola de rieles corro:
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
resolverá el resumen basado en el argumento de la palabra clave virtual_path
.
Las entradas de fragmentos de caché se crean con una clave ligeramente diferente a la que se accede con Rails.cache.
Utilice expire_fragment
en expire_fragment
lugar (puede enviarlo a un controlador): http://api.rubyonrails.org/classes/ActionController/Caching/Fragments.html#M000438
Rails.cache.delete "views/site_search_form"