¿Alguien sabe cómo instruir a los raíles sobre las clases de memoria ca NO incluidas en la carpeta lib?Prevención de raíles 2/3 del almacenamiento en caché de Lib/Clases
Respuesta
Esto también se puede hacer si no se usa el directorio lib/
, sino que se almacenan las clases o archivos auxiliares dentro del directorio app/helpers
. De esta forma, se volverán a cargar durante el tiempo de desarrollo y se almacenarán en caché durante el tiempo de producción.
Por "clases de almacenamiento en caché" Supongo que quiere decir que los archivos de origen dentro del directorio de la aplicación se vuelven a cargar automáticamente en el entorno de desarrollo antes de procesar una nueva solicitud.
Esto no está relacionado con el almacenamiento en caché, el comportamiento normal de Ruby es, leer y analizar un archivo fuente una vez y nunca más, siempre que se ejecute el proceso. Rails (ActiveSupport :: Dependency en realidad) proporciona un mecanismo para volver a cargar todo el código antes de procesar una solicitud. En el entorno de desarrollo, esto es útil ya que no desea reiniciar el servidor web local por cada cambio que realice en el código. En el entorno de producción, esto perjudicaría gravemente el rendimiento y, por lo tanto, se desactivará.
De forma predeterminada, las clases de la aplicación se marcan como recargables. Puede marcar clases arbitrarias que volver a cargar antes de la solicitud es procesada en el entorno de desarrollo utilizando el método unloadable
clase:
class MyClass
unloadable # mark this class as reloadable before a request is processed
# …
end
Tenga en cuenta que no todas las clases puede jugar bien con descarga. Siempre que defina su clase en un archivo de origen que encuentre y cargue el mecanismo de carga automática de Rails, probablemente sea bueno. Pero puede tener problemas si reabre su clase en otro lugar para enviar un parche, ya que la carga automática no detectará esto.
- 1. Prevención del almacenamiento en caché de archivos CSS
- 2. Prevención del almacenamiento en caché del navegador en actualizaciones de aplicaciones web
- 3. Almacenamiento en caché y prevención de estampillas de caché: múltiples cálculos simultáneos
- 4. Prevención del almacenamiento en memoria caché de la aplicación Flex en el navegador (módulos múltiples)
- 5. Teoría del almacenamiento en caché
- 6. Almacenamiento en memoria caché de raíles: reemplazo de expires_in en Rails.cache.fetch
- 7. ¿Almacenamiento en caché de Hibernate?
- 8. ¿Cableado del almacenamiento en caché del lado del cliente WCF?
- 9. Rails Acción Almacenamiento en caché para registros específicos del usuario
- 10. Almacenamiento en caché distribuido
- 11. Almacenamiento en caché Viewstate?
- 12. Almacenamiento en caché del lado del servidor en openrasta
- 13. Almacenamiento en caché IEnumerable
- 14. almacenamiento en caché de archivos de JavaScript
- 15. Almacenamiento en caché de imágenes en Memcached
- 16. Deshabilitar el almacenamiento en caché del lado del cliente
- 17. mejor manera de desactivar el almacenamiento en caché del cliente
- 18. ¿Filtro de servlet para el almacenamiento en caché del navegador?
- 19. Patrones de almacenamiento en caché en ASP.NET
- 20. azul almacenamiento en caché de ubicación conjunta
- 21. Almacenamiento en caché en urllib2?
- 22. Almacenamiento en caché en JDBC
- 23. IE 8 Problema de almacenamiento en caché
- 24. Almacenamiento en caché de DNS usando getaddrinfo
- 25. Almacenamiento en caché de archivos Css
- 26. Colecciones de almacenamiento en caché en backbone.js?
- 27. Datos de almacenamiento en caché en grails
- 28. Estrategias de almacenamiento en caché con Memcached?
- 29. ¿Patrón de almacenamiento en caché plugable generalizado?
- 30. Almacenamiento en caché de devoluciones no vistas
No exactamente. Lo que quiero decir es que cuando cargo una clase (usando require e include) en mi aplicación. Entonces, siempre que esa clase se use en otra página u otra solicitud, entonces los rieles NO requieren el archivo (cargar el archivo) nuevamente, simplemente usa la clase que se cargó antes (porque permanece en la memoria). Esto se vuelve frustrante ya que necesito volver a cargar el servidor de los raíles cada vez que realizo un cambio en la clase lib que está incluida. Lo estoy ejecutando en modo de desarrollo con las clases de caché de configuración establecidas en falso. – matsko
Ya veo. El mecanismo de recarga de Rails probablemente solo funcione si tu clase está cubierta por la carga automática de Rails, no si la requieres manualmente. Sugeriría que tu clase se cargue mediante la carga automática de Rails, lo cual es muy conveniente de todos modos (no tienes que exigirlo y funciona en todas partes). Si eso no es posible, podría intentar explotar la carga automática de Rails cargando su archivo de clase en un archivo cubierto por carga automática (pero asegúrese de usar #load, not #require, ya que requieren solo cargas una vez) – Zargony