1

在 Gemfile 中,我想编写伪代码:

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

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

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

有什么更好的方法?

相关: 如何检测我的应用程序是否在 Heroku 上运行?

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

4

2 回答 2

3

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

于 2013-11-15T18:58:20.867 回答
-2

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

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

Rails.env.heroku?

希望能帮助到你。

于 2013-01-15T01:25:53.827 回答