【问题标题】:How to detect if my ruby app is running on heroku without config:add?如何检测我的 ruby​​ 应用程序是否在没有 config:add 的 heroku 上运行?
【发布时间】:2013-01-13 15:58:10
【问题描述】:

在 Gemfile 中,我想写伪代码:

ruby: '1.9.3' if ENV['HEROKU']

因为我想在另一个平台上运行我的应用程序,比如 jruby、ruby2.0.0 if !heroku 等版本。我认为这是 heroku 特定的 var,HEROKU_POSTGRESQL_VIOLET_URL

ruby: '1.9.3' if ENV['HEROKU_POSTGRESQL_VIOLET_URL']

有什么更好的方法?

相关: How to detect if my app is running on Heroku?

糟糕,HEROKU_POSTGRESQL_{VIOLET,SLIVER,RED,...}_URL,这是分布式的。

【问题讨论】:

标签: ruby heroku bundler


【解决方案1】:

在我看来if ENV.keys.any? {|var_name| var_name.match(/heroku/i) } 将是一种相对理智的方法。

【讨论】:

  • 好!谢谢!但我觉得这是临时解决方案;(
  • 2015年不再有任何匹配/heroku/i的键,但是有一个匹配/dyno/i(如果上面链接的更好的解决方案真的不适用的话)。
【解决方案2】:

如果您不想添加另一个环境变量,可以将 Rails 环境从“生产”更改为“heroku”(但无论如何都应该通过更改环境变量 RAILS_ENV 来完成)。

因此,您的 Rails 环境在本地将是开发/测试/生产,但在 Heroku 上它将是“heroku”,您将能够检查:

Rails.env.heroku?

希望对你有帮助。

【讨论】:

  • 这在 bundler 阶段不起作用,因为在那里没有定义 Rails。
猜你喜欢
  • 2015-10-31
  • 1970-01-01
  • 1970-01-01
  • 2020-01-16
  • 1970-01-01
  • 2021-03-10
  • 2010-10-04
  • 2020-10-25
  • 1970-01-01
相关资源
最近更新 更多