如何限制宝石安装在不同的rails环境中?

时间:2014-01-03 08:51:39

标签: ruby ruby-on-rails-3 ruby-on-rails-4 setup-deployment capistrano3

我在我的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 gem。这对我没有意义,为什么我需要在生产服务器上使用capistrano?所以,根据我的理解,我没有在Gemfile中找到任何用于bundler的group :development块。有什么我做错了吗?我如何确保不安装生产/暂存所需的宝石,而是安装本地(开发/测试)?如果我在这里做错了什么,请纠正我?

修改

请注意,我知道我们可以将if ENV['RAILS_ENV'] == 'production'用于其他环境不需要的宝石。我正在寻找的是在 Gemfile 中使用group作为捆绑包。

1 个答案:

答案 0 :(得分:2)

如果您只想安装用于生产的宝石,可以使用以下命令:

bundle install --without development test

或Heroku:

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

这排除了开发和测试环境。如果您定义了更多组,则可以在此命令的末尾添加它们。