ruby on rails - rails - Rieles: ¿Inicializadores por entorno?
ruby on rails que es (3)
Me gustaría que el código en uno de mis inicializadores (en config/initializers/ ) se ejecute solo para :development entorno de :development , pero no :test o :production . ¿Cuál es la mejor manera de hacer eso?
Pegarlo en config/environments/test.rb parece impuro, y no me gusta envolver todo el archivo inicializador en una if Rails.env == ''development'' do ... end . ¿Hay alguna manera canónica de hacer esto?
(Antecedentes: para acelerar los tiempos de carga de prueba, estoy intentando mover la gema Barista al :development grupo de :development de mi Gemfile , pero config/initializers/barista_config.rb llama a Barista.configure , por lo que ahora se ahoga en la prueba ( y producción) modo).
Barista tiene una configuración de configuración para esto:
Barista.configure do |c|
c.env = :development
end
Esto solo recompilará coffescript en js en modo dev y acelerará sus pruebas.
Asegúrate de ejecutar:
rake barista:brew
antes de verificar tu código
Estoy bastante seguro de que sus dos únicas opciones son poner el código de configuración en config/environments/development.rb o empaquetar su código de inicializador con su bloque if . Puede ajustar su segunda opción haciendo if Rails.env.development? , aunque.
No sé si esta es una buena idea, pero es una idea diferente.
Podrías crear un directorio config/initializers/development (o config/environments/development/initializers ), poner tu barista_config.rb en ese directorio, y luego incluir cualquier cosa en ese directorio desde config/environments/development.rb .
No sé si es una buena idea o no, pero es al menos una tercera opción ... en caso de que sigas pensando en este problema tres años y medio después de hacer la pregunta.