使用Gemfile中的环境变量部署到Heroku

时间:2015-01-27 14:21:11

标签: ruby-on-rails git heroku rubymine

我最近更新了我们的Gemfile pry-byebugbye-bug导致Rubymine因某些同事而崩溃。由于我们中的一些人使用其他编辑器,我已经为我们的Gemfile添加了一个环境变量:

if ENV["USE_DEBUGGER"]
  gem "pry-byebug"
  gem "byebug"
end

这在我们的本地计算机上运行良好,但部署到Heroku会导致以下错误:gist

我已尝试运行bundle install并提交新的Gemfile.lock,但这不会改变任何内容。摆脱控制流声明或简单地删除宝石修复了这个问题。在同一个提交中,我将所需的ruby版本提升到2.2.0

是没有价值的。

有没有办法在Gemfile中使用条件语句而不用吹Heroku?

2 个答案:

答案 0 :(得分:0)

将条件包装在一个组中,并在部署时尝试BUNDLE_WITHOUTref

group :byebug do
  if ENV["USE_DEBUGGER"]
    gem "pry-byebug"
    gem "byebug"
  end
end

heroku config:add BUNDLE_WITHOUT="byebug"

答案 1 :(得分:0)

好吧,在与RubyMine玩杂耍后,我意识到问题发生在require撬和任何其他相关的调试宝石时。我设法通过将我的Gemfile更新为以下内容来解决此问题:

  if ENV["USE_DEBUGGER"]
    gem "pry-byebug"
    gem "byebug"
  else
    gem "pry-byebug", require: false
    gem "byebug", require: false
  end

我希望这可以帮助任何面临类似问题的人。

相关问题