tutorial rails que ejemplos curso caracteristicas aprender ruby-on-rails ruby-on-rails-3

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

https://github.com/Sutto/barista


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.