将:staging组添加到My Gemfile的正确方法是什么?

时间:2013-10-30 21:09:14

标签: ruby-on-rails ruby-on-rails-3 bundler gemfile

我在Heroku上设置遥控器进行制作和舞台演出。

在暂存时,我已将应用的env设置为包括:

RACK_ENV=staging
RAILS_ENV=staging

我希望能够在我staging中指定一个Gemfile群组,方法与我目前使用productiontestassets的方式相同:

group :staging do
  gem "example", "~> 0.9"
end

我了解如何添加自定义组。来自我的application.rb

  groups = {
    assets: %w(development test)
  }
  Bundler.require(:security, :model, :view, *Rails.groups(groups))

但是如何添加仅在分段中加载的组?

我尝试过没有成功:

  groups = {
    assets: %w(development test),
    staging: %(staging)
  }
  Bundler.require(:security, :model, :view, *Rails.groups(groups))

1 个答案:

答案 0 :(得分:10)

您的Gemfile可以包含如下组:

# Gemfile
  group :staging do
    gem 'example','~>1.0'
  end

创建暂存环境

# /config/environments/staging.rb
... 
copy config/environments/production.rb code here with adjustments as needed
...

其工作原理可在/config/application.rb中找到。

Rails.groups包括:默认组(所有未分组的宝石)和与RAILS_ENV设置的环境名称相匹配的宝石组,在这种情况下将是" staging"。你的要求。你的Bundler.require应该是这样的:

Bundler.require *Rails.groups(:assets => %w(development test))

有关Bundler和群组的更多信息,请阅读http://bundler.io/v1.5/groups.html