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