Pregunta

Algo así como

Rails.cache.delete('site_search_form')

no parecen funcionar. es posible? Gracias.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top