En el desarrollo, la (simplificado) declaración después siempre registra un fallo de caché, en la producción funciona como se esperaba:Rails3 - El almacenamiento en caché en modo de desarrollo con Rails.cache.fetch
@categories = Rails.cache.fetch("categories", :expires_in => 5.minutes) do
Rails.logger.info "+++ Cache missed +++"
Category.all
end
Si cambio config.cache_classes de falso a verdadero en config/development.rb, funciona también en modo de desarrollo, sin embargo, esto hace que el desarrollo sea bastante doloroso. ¿Hay alguna configuración que sea como config.cache_classes = false
, excepto que Rails.cache.fetch está obteniendo de la memoria caché si es posible?
Solo una sugerencia adicional, agregue una a menos que ENV ["DEV_CACHE"] coloque la configuración de prueba en ella, con otra que tenga la configuración normal que no sea de caché. Luego, cuando quiera habilitar el almacenamiento en caché en su terminal, puede escribir exportar DEV_CACHE = "ALGO". La mejor parte es que es mucho menos probable que accidentalmente haya habilitado el almacenamiento en caché cuando no lo desea. – tehprofessor
Este consejo es muy útil junto con la solución. – anbiniyar