如何检测我的ruby应用程序是否在没有配置的heroku上运行:添加?

时间:2013-01-13 15:58:10

标签: ruby heroku bundler

在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,这是分发的。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:-2)

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

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

Rails.env.heroku?

希望它有所帮助。