如何在Heroku上选择Ruby版本?

我在我的Rails 3应用程序中使用了Ruby 1.9.x语法,但在将其推送到Heroku之后,由于旧的Ruby版本(1.8)而崩溃。 我该如何控制它?

Heroku目前的堆栈Cedar默认使用1.9.2。 Cedar还支持在Gemfile中指定Ruby版本 。 目前, 1.9.2和1.9.3是有效选项 。

# Gemfile source "https://rubygems.org" ruby "1.9.3" ... 

有关更多详细信息,请参阅Ruby支持文章: https : //devcenter.heroku.com/articles/ruby-support


如果您当前正在使用Aspen或Bamboo,则可以使用stack:migrate命令切换到1.9.2:

 $ heroku stack:migrate bamboo-mri-1.9.2 

您目前无法自动迁移到Cedar堆栈,但有一个如何执行此操作的指南: https : //devcenter.heroku.com/articles/cedar-migration

您现在可以在Heroku上显式指定Ruby版本 。

只需设置您的Gemfile

 # Gemfile source "https://rubygems.org" ruby "1.9.3" # Gems go here 

我想使用我已经在.ruby-version文件中定义.ruby-version所以我最终创建了一个buildpack,可以在heroku-buildpack-ruby之前使用,它将.ruby-version中的版本注入到Gemfile 。 它还支持没有补丁或别名的版本。

https://github.com/platanus/heroku-buildpack-ruby-version

这样,您只能在一个地方定义您的版本。