Как ограничить установку драгоценных камней в разных средах рельсов?

У меня есть это в моем Gemfile:

....
..
# Use Capistrano for deployment
group :development do
  gem 'capistrano', '3.0.1'
  gem 'capistrano-rails', '~> 1.1'
end

Теперь, если я зайду на свой рабочий сервер и сделаю RAILS_ENV=production bin/bundle install, он также установит гем capistrano. Что для меня не имеет смысла, зачем мне капистрано на рабочем сервере? Итак, насколько я понимаю, я не нахожу никакого использования блока group :development в Gemfile для сборщика. Есть ли что-то, что я делаю неправильно? Как мне убедиться, что я не устанавливаю драгоценные камни, которые не требуются для производства/постановки, а локальны (разработка/тестирование)? Пожалуйста, поправьте меня, если я делаю что-то не так здесь?

РЕДАКТИРОВАТЬ

Обратите внимание: я знаю, что мы можем использовать if ENV['RAILS_ENV'] == 'production' для гемов, которые не требуются для других сред. Я ищу использование group в Gemfile для упаковщика.


person Surya    schedule 03.01.2014    source источник
comment
Это правильно. Но bundle install --without='development' будет устанавливать гемы из тестовой группы? не так ли?   -  person Surya    schedule 03.01.2014
comment
Я так и думал. Все равно спасибо. :)   -  person Surya    schedule 03.01.2014


Ответы (1)


Если вы хотите установить только драгоценные камни для производства, вы можете использовать эту команду:

bundle install --without development test

или для Героку:

$ heroku config:add BUNDLE_WITHOUT="test development" --app app_name

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

person Johnny Graber    schedule 03.01.2014
comment
Ага! Спасибо это работает!! Очень признателен. Хотел бы я прочитать это: bundler.io/v1.5/groups.html, слишком. - person Surya; 03.01.2014