Ruby on rails 向我的文件中添加:临时组的正确方法是什么
我在Heroku上安装了遥控器,用于制作和登台 在登台时,我已将应用程序的环境设置为包括: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:
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已经提到的相同的事情。我也不太明白你们的团队逻辑。首先,你的代码是无效的,其次我不明白它应该做什么。