Рельсы комплект только для установки

Извините, если это вопрос типа RTFM, но я все еще новичок в rails/ruby ​​/bundler и немного запутался.

В нашем config/application.rb файле есть этот сегмент связки:

if defined?(Bundler)         
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end

и в нашем Gemfile мы используем разные группы, например.

group :development, :test do
  gem "rspec-rails", ">= 2.7.0", :group => [:development, :test]
  gem 'shoulda-matchers'
  gem 'watchr'
  gem 'spork', '~> 1.0rc'
  gem 'spectator'                          
  gem 'debugger'
  gem 'wirble'
end

Но когда я запускаю RAILS_ENV=production bundle install (или bundle install --deployment), он все еще устанавливает драгоценные камни из группы разработки/тестирования...

Почему это происходит или как я могу сделать эту работу должным образом?

Ответ 1

Взгляните на --without вариант:

bundle install --without development test

По умолчанию Bundler устанавливает все драгоценные камни, и ваше приложение использует драгоценные камни, которые ему нужны. Сам Bundler ничего не знает о Rails и текущей среде.

Ответ 2

Альтернативным решением является использование bundle-only рубинового камня. Его можно использовать следующим образом:

> gem install bundle-only
> bundle-only production

Эта библиотека не загрязняет ваши конфигураторы пакетов или увеличивает Gemfile.lock; это простая альтернатива встроенной опции bundle --without every other group, которая предоставляет bundler.