Я использую синтаксис Ruby 1.9.x в своем приложении Rails 3, но после нажатия его на Heroku он выходит из строя из-за более старой версии Ruby (1.8). Как я могу его контролировать?
Как я могу выбрать версию Ruby на Heroku?
Ответ 1
Текущий стек Heroku, Cedar, по умолчанию использует 1.9.2. Cedar также поддерживает указание версии Ruby в вашем Gemfile. В настоящее время 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, вы можете переключиться на 1.9.2 с помощью команды stack:migrate
:
$ heroku stack:migrate bamboo-mri-1.9.2
Вы не можете автоматически перейти на стек кедра в это время, но есть руководство по тому, как это сделать: https://devcenter.heroku.com/articles/cedar-migration p >
Ответ 2
Теперь вы можете явно указать версию Ruby на Heroku.
Просто настройте свой Gemfile
как таковой
# Gemfile
source "https://rubygems.org"
ruby "1.9.3"
# Gems go here
Ответ 3
Я хотел использовать версию, которую я уже определил в файле .ruby-version
, поэтому я закончил создание buildpack, который можно использовать до heroku-buildpack-ruby, который вводит версию из. ruby-version в Gemfile
. Он также поддерживает версии без патчей или псевдонимов.
https://github.com/platanus/heroku-buildpack-ruby-version
Таким образом, ваша версия может быть определена только в одном месте.