Rails: инициализаторы для среды? - PullRequest
43 голосов
/ 27 января 2011

Я бы хотел, чтобы код в одном из моих инициализаторов (в config/initializers/) запускался только для среды :development, но не :test или :production. Какой лучший способ сделать это?

Вставка в config/environments/test.rb кажется нечистой, и мне не очень нравится упаковывать весь файл инициализатора в оператор if Rails.env == 'development' do ... end. Есть какой-то канонический способ сделать это?

(Справочная информация: чтобы ускорить время тестовой загрузки, я пытаюсь переместить самоцвет Barista в группу :development моего Gemfile, но config/initializers/barista_config.rb вызывает Barista.configure, так что теперь это тестовый (и производственный) режим.)

Ответы [ 3 ]

47 голосов
/ 28 января 2011

Я почти уверен, что ваши единственные варианты - ввести код конфигурации в config/environments/development.rb или обернуть код инициализатора блоком if. Вы можете усилить свой второй вариант, выполнив if Rails.env.development?, однако.

3 голосов
/ 17 августа 2014

Я не знаю, хорошая ли это идея, но это другая идея.

Вы можете создать каталог config/initializers/development (или config/environments/development/initializers), поместить свой barista_config.rb в этот каталог.и затем включите в этот каталог что-нибудь из config/environments/development.rb.

Я не знаю, хорошая это идея или нет, но это как минимум третий вариант ... на тот случай, если вы все еще думаете оэта проблема через три с половиной года после постановки вопроса.

1 голос
/ 01 февраля 2011

Barista имеет настройки конфигурации для этого:

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

Это только перекомпилирует coffescript в js в режиме разработки и должно ускорить ваши тесты.

Убедитесь, что вы запустили:

rake barista:brew

перед проверкой вашего кода.

https://github.com/Sutto/barista

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...