43 votes

Rails: initialiseurs par environnement?

Je voudrais le code dans l'un de mes initialiseurs (en config/initializers/) pour être exécuté uniquement pour l' :development de l'environnement, mais pas :test ou :production. Quelle est la meilleure façon de le faire?

De le coller dans config/environments/test.rb semble sale, et je n'ai pas tout à fait comme l'habillage de l'ensemble de l'initialiseur de fichier dans un if Rails.env == 'development' do ... end déclaration. Est-il une manière canonique pour ce faire?

(Rappel: Pour accélérer la charge d'essai de temps, je suis en train de déplacer le Barista est un joyau dans l' :development mes Gemfile, mais config/initializers/barista_config.rb des appels Barista.configure, alors maintenant elle s'étouffe sur que dans le test (et de production), mode).

47voto

Dylan Markow Points 65796

Je suis presque sûr que vos deux seules options consistent à placer le code de configuration dans config/environments/development.rb ou à envelopper votre code d'initialiseur avec votre bloc if . Vous pouvez cependant resserrer votre deuxième option en effectuant if Rails.env.development? .

3voto

Jason Swett Points 8368

Je ne sais pas si c'est une bonne idée, mais c'est une idée différente.

Vous pouvez créer un répertoire config/initializers/development (ou config/environments/development/initializers ), placer votre barista_config.rb dans ce répertoire, puis tout inclure dans ce répertoire à partir de config/environments/development.rb .

Je ne sais pas si c'est une bonne idée ou non, mais c'est au moins une troisième option ... juste au cas où vous pensez toujours à ce problème trois ans et demi après avoir posé la question.

1voto

shawn42 Points 400

Barista a un paramètre de configuration pour cela:

 Barista.configure do |c|
  c.env = :development
end
 

Cela ne fera que recompiler Coffescript en js en mode dev et devrait accélérer vos tests.

Assurez-vous de courir:

 rake barista:brew
 

avant de vérifier votre code po

https://github.com/Sutto/barista

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X