Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 向我的文件中添加:临时组的正确方法是什么_Ruby On Rails_Ruby On Rails 3_Bundler_Gemfile - Fatal编程技术网

Ruby on rails 向我的文件中添加:临时组的正确方法是什么

Ruby on rails 向我的文件中添加:临时组的正确方法是什么,ruby-on-rails,ruby-on-rails-3,bundler,gemfile,Ruby On Rails,Ruby On Rails 3,Bundler,Gemfile,我在Heroku上安装了遥控器,用于制作和登台 在登台时,我已将应用程序的环境设置为包括: RACK_ENV=staging RAILS_ENV=staging 我希望能够在我的Gemfile中指定一个staging组,方法与我当前可以使用production、test或assets的方法相同: group :staging do gem "example", "~> 0.9" end 我了解如何添加自定义组。从我的应用程序.rb: groups = { assets:

我在Heroku上安装了遥控器,用于制作和登台

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

RACK_ENV=staging
RAILS_ENV=staging
我希望能够在我的
Gemfile
中指定一个
staging
组,方法与我当前可以使用
production
test
assets
的方法相同:

group :staging do
  gem "example", "~> 0.9"
end
我了解如何添加自定义组。从我的
应用程序.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))

您的GEM文件可以包括以下组:

# 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中可以找到这种方法有效的原因

groups包括:默认组(所有未分组的gem)和与环境名称匹配的gem组,由Rails_ENV设置,在本例中为“staging”。你的要求。您的Bundler.require应该如下所示:

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

有关Bundler和Group的更多信息,请阅读有点离题的

,但是使用单独的gemfile进行暂存与生产有什么好处?舞台环境不是应该尽可能地模仿生产环境吗?@tyler。我希望在登台时使用一些我不希望在生产中使用的日志记录/调试设备。@Pedr可能通过使用生产组来解决此问题,但使用
require:false
在执行时不需要此日志记录设备。在staing.rb配置中,放置隐式require来启用它。如果Rails.env==:staging,Bundler.require(:staging)如何?我想建议与@Waterlink已经提到的相同的事情。我也不太明白你们的团队逻辑。首先,你的代码是无效的,其次我不明白它应该做什么。