7

我在 Heroku 上设置了用于生产和登台的遥控器。

在暂存时,我已将应用程序的环境设置为包括:

RACK_ENV=staging
RAILS_ENV=staging

我希望能够以我当前使用的相同方式staging在 my 中指定一个组,或者:Gemfileproductiontestassets

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))
4

1 回答 1

11

您的 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 包括 :default 组(所有未分组的 gem)和匹配环境名称的 gem 组,由 RAILS_ENV 设置,在本例中为“staging”。你的要求。您的 Bundler.require 应如下所示:

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

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

于 2014-03-21T14:10:33.673 回答