20

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

4

3 回答 3

34

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

于 2010-08-31T23:43:18.737 回答
4

您现在可以在 Heroku 上明确指定 Ruby 版本

简单地设置你Gemfile

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

# Gems go here
于 2012-05-25T17:49:40.783 回答
0

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

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

这样您就可以只在一个地方定义您的版本。

于 2016-01-30T05:55:37.433 回答