我在我的Rails 3应用程序中使用了Ruby 1.9.x语法,但在将其推送到Heroku后,由于旧的Ruby版本(1.8)而崩溃。我该如何控制它?
答案 0 :(得分:34)
Heroku当前的堆栈Cedar默认使用1.9.2。雪松还支持specifying the Ruby version in your Gemfile。目前,1.9.2 and 1.9.3 are valid options。
# 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
答案 1 :(得分:4)
您现在可以explicitly specify a Ruby version on Heroku。
只需设置Gemfile
即可
# Gemfile
source "https://rubygems.org"
ruby "1.9.3"
# Gems go here
答案 2 :(得分:0)
我想使用我已经在.ruby-version
文件中定义的版本,所以我最终创建了一个可以在 heroku-buildpack-ruby 之前使用的buildpack,它可以从.ruby-version进入Gemfile
。它还支持没有补丁或别名的版本。
https://github.com/platanus/heroku-buildpack-ruby-version
这样您就可以只在一个地方定义您的版本。