¿Cómo puedo expire un fragmento vista en caché de la consola?
-
09-09-2019 - |
Pregunta
Algo así como
Rails.cache.delete('site_search_form')
no parecen funcionar. es posible? Gracias.
Solución
entradas de caché de fragmentos se crean con una llave ligeramente diferente a lo que se accede con Rails.cache.
Utilice expire_fragment
lugar (se puede enviar a un controlador): http://api.rubyonrails.org/classes/ActionController/Caching/Fragments.html#M000438
Otros consejos
ActionController :: Base.new.expire_fragment (clave)
Rails.cache.delete "views/site_search_form"
En los carriles 5 Tomé los siguientes pasos para reventar la caché sin tener que recurrir a skip_digest: true
. Nuestro problema fue que al cambiar el valor de cuerdas I18n no refleja en la memoria caché computarizada digesto por lo que el caché no conseguiría reventado de forma automática.
Esta es la vista donde se define el bloque de caché:
/ views/layouts/_footer.html.slim
- cache :footer do
span= t('shared.footer')
A continuación, 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
se darán cuenta de la digestión con base en el argumento de palabra clave virtual_path
.