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.