简体   繁体   中英

How can I choose Ruby version on Heroku?

I use Ruby 1.9.x syntax in my Rails 3 app, but after pushing it to Heroku it crashes due to older Ruby version (1.8). How can I control it?

Heroku's current stack, Cedar, uses 1.9.2 by default. Cedar also supports specifying the Ruby version in your Gemfile . Currently, 1.9.2 and 1.9.3 are valid options .

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

More details are available in the Ruby support article: https://devcenter.heroku.com/articles/ruby-support


If you are currently using Aspen or Bamboo, you can switch to 1.9.2 by using the stack:migrate command:

$ heroku stack:migrate bamboo-mri-1.9.2

You cannot automatically migrate to the Cedar stack at this time, but there is a guide on how to do so: https://devcenter.heroku.com/articles/cedar-migration

You can now explicitly specify a Ruby version on Heroku .

Simply setup your Gemfile as so

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

# Gems go here

I wanted to use the version I already had defined in the .ruby-version file so I ended up creating a buildpack that can be used before heroku-buildpack-ruby that injects the version from the .ruby-version into the Gemfile . It also support versions without patch or aliases.

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

This way you can have your version defined only in one place.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM