Chciałbym, aby kod w jednym z moich inicjalizatorów (w config/initializers/
) był uruchamiany tylko dla środowiska :development
, ale nie :test
ani :production
. Jaki jest najlepszy sposób na zrobienie tego?Szyny: Inicjatory dla różnych środowisk?
Wklejenie go do config/environments/test.rb
wydaje się nieczyste, a ja nie lubię owijać całego pliku inicjatora w oświadczeniu if Rails.env == 'development' do ... end
. Czy jest jakiś kanoniczny sposób na zrobienie tego?
(Tło: Aby przyspieszyć czas ładowania testowych, Próbuję przenieść gem Barista do grupy :development
mojego Gemfile
, ale config/initializers/barista_config.rb
wzywa Barista.configure
, więc teraz to krztusi się, że w teście (i produkcji) Tryb.)
Innym podobnym wzorem jest użycie 'if defined? (Foo)', jeśli klej Foo jest załadowany tylko w trybie programistycznym lub testowym. [Konacha] (https://github.com/jfirebaugh/konacha) zaleca to na przykład. –
Podoba mi się podejście Konacha - unika powtarzania tego, co już zostało powiedziane w Gemfile. – ZoFreX