rails memcache development cache ruby-on-rails caching

memcache - Ruby on Rails: borre una página en caché



rails etag (5)

Compruebe si hay una versión estática de su página en / public y elimínela si está allí. Cuando Rails 3.x almacena en caché las páginas, deja una versión estática en su carpeta pública y la carga cuando los usuarios acceden a su sitio. Esto permanecerá incluso después de borrar tu caché.

Tengo una aplicación RoR (ruby v1.8.7; rails v2.3.5) que está almacenando en caché una página en el entorno de desarrollo. Esto no sería un gran problema, pero los elementos de la página en caché son incorrectos.

No hice ningún cambio en el archivo development.rb y no agregué ningún comando de caché a los controladores.

Intenté borrar las cookies del navegador (Firefox 3.5 en OSX) y los cachés de página para este sitio (localhost). También reinicié el mestizo. Nada parece ayudar.

¿Qué me estoy perdiendo?


Esta línea en development.rb asegura que el almacenamiento en caché no está sucediendo.

config.action_controller.perform_caching = false

Puede borrar la caché Rails con

Rails.cache.clear

Dicho eso, no estoy seguro de que esto sea un problema de almacenamiento en caché. ¿Estás haciendo cambios en la página y no los ves reflejados? ¿Tal vez no estás mirando la versión en vivo de esa página? Lo hice una vez (sonrojo).

Actualizar:

Puede llamar a ese comando desde la consola. ¿Estás seguro de que estás ejecutando la aplicación en desarrollo?

La única alternativa es que la página que está intentando procesar no es la página que se está procesando.

Si mira la salida del servidor, debería poder ver el comando de renderizado cuando la página se muestra similar a esta:

Rendered shared_partials/_latest_featured_video (31.9ms) Rendered shared_partials/_s_invite_friends (2.9ms) Rendered layouts/_sidebar (2002.1ms) Rendered layouts/_footer (2.8ms) Rendered layouts/_busy_indicator (0.6ms)


Pude resolver este problema limpiando mi caché de activos:

$ rake assets:clean


Si está haciendo el almacenamiento en memoria caché de fragmentos , puede romper manualmente la memoria caché actualizando su clave de caché, así:

Versión 1

<% cache [''cool_name_for_cache_key'', ''v1''] do %>

Versión 2

<% cache [''cool_name_for_cache_key'', ''v2''] do %>

O puede hacer que la memoria caché se restablezca automáticamente en función del estado de un objeto no estático, como un objeto ActiveRecord, así:

<% cache @user_object do %>

Con este ^ método, cada vez que se actualiza el objeto del usuario, la memoria caché se restablecerá automáticamente.


rake tmp:cache:clear puede ser lo que estás buscando.