在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,这是分发的。
答案 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?
希望它有所帮助。