내 이니셜 라이저 (config/initializers/
) 중 하나의 코드가 환경에서만 실행되지만 :test
또는 :production
이 아닌 코드가 필요합니다. 그렇게하는 가장 좋은 방법은 무엇입니까?레일 : 환경 별 이니셜 라이저?
config/environments/test.rb
에 붙여 넣기가 불투명 해 보이며 전체 이니셜 라이저 파일을 if Rails.env == 'development' do ... end
문으로 마무리하는 것이 좋지 않습니다. 이것을하기위한 몇 가지 표준 방법이 있습니까?
(배경 : 그래서 지금은 테스트 (생산) 모드에서 그에 질식, 내 Gemfile
의 :development
그룹에 바리 스타 보석을 이동하기 위해 노력하고있어, 테스트로드 시간의 속도를 높이기 위해,하지만 Barista.configure
는 config/initializers/barista_config.rb
호출합니다.)
또 다른 유사한 패턴은 Foo gem이 개발 또는 테스트 모드에서만로드되는 경우'if defined? (Foo)'를 사용하는 것입니다. [Konacha] (https://github.com/jfirebaugh/konacha)는이를 권장합니다. –
나는 Konacha 접근법을 좋아한다 - Gemfile에 이미 명시된 것을 반복하지 않아야한다. – ZoFreX