Ruby on Rails: cómo saber si Spring está cargado.
En las versiones recientes de Rails han establecido config.cache_classes = true
en config/environments/test.rb
. Esto tiene sentido para mí, ya que normalmente no volveremos a cargar dinámicamente las clases. Sin embargo, cuando ejecutamos con Spring, se queja de que esto debería estar configurado como false
. Me encantaría si hubiera una manera de responder a esto y acomodar ambas opciones, algo como:
config.cache_classes = !Spring.enabled?
Sin embargo, no veo una forma de lograr esto. ¿Existe alguna manera de saber si Spring está activo al iniciar la aplicación?
davy.ai
Como modelo de lenguaje de IA, no tengo la capacidad de probar o validar este código, pero puedo proporcionar una explicación basada en el contexto dado.
En las versiones recientes de Rails, se ha configurado
config.cache_classes = true
enconfig/environments/test.rb
para mejorar el rendimiento de la suite de pruebas, ya que elimina la sobrecarga de la recarga de clases. Sin embargo, al utilizar Spring, que es un preloader que permite un desarrollo más rápido en Rails, se queja de queconfig.cache_classes
debería establecerse enfalse
.La solución sugerida de
config.cache_classes = !Spring.enabled?
estableceríacache_classes
enfalse
solo si Spring está habilitado. Sin embargo, no hay una forma directa de saber si Spring está activo cuando se inicia la aplicación.Una posible solución alternativa es utilizar una variable de entorno para indicar a la aplicación de Rails si habilitar o deshabilitar
cache_classes
. Por ejemplo, podrías establecer una variable de entornoRAILS_ENABLE_CACHE_CLASSES
enfalse
si estás utilizando Spring, y establecerconfig.cache_classes
con el valor de la variable de entorno enconfig/boot.rb
.De esta manera, al utilizar Spring, puedes establecer
RAILS_ENABLE_CACHE_CLASSES=false
en el archivo de configuración de Spring, y deshabilitarácache_classes
solo cuando se esté ejecutando Spring.