Какой Ruby on Rails совместим с какой версией Ruby? - PullRequest
55 голосов
/ 01 февраля 2012

У меня есть старое приложение 2.1.1 Ruby on Rails с системой, обновленной до Ruby 1.8.7.Первоначально он использовал 1.8.5 или около того.

Я хочу обновить его до Ruby 1.9.x по соображениям производительности и, возможно, до более нового Ruby on Rails.

Я не могу найти ни одногопростой график совместимости между различными версиями Ruby и Ruby on Rails.

Будет ли 2.1.1 работать с Ruby 1.9.x?Если нет, то как далеко я должен сначала обновить его и с какими проблемами я могу столкнуться?Мое приложение делает сложные вещи на уровне базы данных, но все остальное довольно просто.

Ответы [ 8 ]

45 голосов
/ 08 мая 2014

Для версий <3.2: <a href="http://www.devalot.com/articles/2012/03/ror-compatibility" rel="noreferrer">http://www.devalot.com/articles/2012/03/ror-compatibility

Для версий> = 4.0:

  • Rails 4 рекомендует 2.0 (src: блог Rails)
  • Rails 4.1/4.2 рекомендует 2.1 (страница прежней загрузки src: Rails)
  • Rails 4.2.1 рекомендует 2.2 (страница прежней загрузки src: Rails)
  • Rails 5.0 требует 2.2.2+ ( Railsblog )

Rails 3.2

Я попытался выйти из этих рекомендаций (в основном, при запуске Rails 3.0 на Ruby 2.0 и 2.1), я запустился внесколько странных проблем.

42 голосов
/ 12 августа 2018

Это старый вопрос, но стабильные ветки Rails начиная с 3.0 используют travis-ci для автоматического тестирования, и тот факт, что rails протестирован на версии ruby, является хорошим показателем того, что он должен работать на этой версии ruby.

Список протестированных версий ruby ​​по веткам rails:

Rails 3.0

  • 1.8.7
  • 1.9.2
  • 1.9.3

Рельсы 3.1

  • 1.8.7
  • 1.9.2
  • 1.9.3

Рельсы 3.2

  • 1.8.7
  • 1.9.2
  • 1.9.3
  • 2.0.0
  • 2.1.8
  • 2.2.6
  • 2.3.3

Рельсы 4.0

  • 1.9.3
  • 2.0.0
  • 2.1
  • 2.2

Рельсы 4.1

  • 1.9.3
  • 2.0.0
  • 2.1
  • 2.2.4
  • 2.3.0

Рельсы 4.2

  • 1.9.3
  • 2.0.0-p648
  • 2.1.10
  • 2.2.10
  • 2.3.8
  • 2.4.5

Рельсы 5.0

  • 2.2.10
  • 2.3.8
  • 2.4.5

Рельсы 5.1

  • 2.2.10
  • 2.3.7
  • 2.4.4
  • 2.5.1

Рельсы 5.2

  • 2.2.10
  • 2.3.7
  • 2.4.4
  • 2.5.1

Рельсы 6.0

  • 2.5.3
  • 2.6.0

https://www.hmallett.co.uk/2018/08/ruby-and-ruby-on-rails-version-compatibility/)

13 голосов
/ 06 августа 2016

Руководство по обновлению Ruby on Rails в Rails содержит раздел Версии Ruby . Это, вероятно, лучший источник, поскольку он контролируется основной командой Rails.

По состоянию на август 2016 года Руководство по Rails гласит:

1,3 версии Ruby

Rails, как правило, приближается к последней выпущенной версии Ruby:

  • Rails 5 требует Ruby 2.2.2 или новее.
  • Rails 4 предпочитает Ruby 2.0 и требует 1.9.3 или новее.
  • Rails 3.2.x - последняя ветка, поддерживающая Ruby 1.8.7.
  • Для Rails 3 и выше требуется Ruby 1.8.7 или выше. Поддержка всех предыдущих версий Ruby была официально прекращена. Вы должны обновить как можно раньше.
13 голосов
/ 26 декабря 2012

Его трудно найти в заметках о выпуске.После поиска в течение некоторого времени, я мог найти его только здесь http://www.devalot.com/articles/2012/03/ror-compatibility

Ruby Rails Version Compatibility

7 голосов
/ 01 февраля 2012

Из примечания к выпуску Rails 2.2: (не совсем то, что вы просили)

Наряду с безопасностью потоков была проделана большая работа по созданию Rails хорошо работать с JRuby и предстоящим Ruby 1.9. Ruby 1.9 является движущаяся цель, бегущий край Rails на краю Ruby по-прежнему хит или промах предложение, но Rails готов сделать переход на Ruby 1.9 когда последний выпущен.

Я полагаю, что Rails 2.1.1 не совместим с Ruby 1.9, и вы были бы сами по себе в такой среде. Конечно, вы можете сделать это, если ваш тестовый костюм исчерпывающий. Кроме того, вам придется проверить все другие драгоценные камни, используемые в проекте, что может быть реальной проблемой.

Если вы решите придерживаться этой версии Rails, я не буду переходить на 1.9.x. Как вы упомянули, вы бы предпочли обновить его, возможно, вам следует пройти через устаревшие версии, указанные в Замечания к выпуску Rails 3.0 , и адаптировать свой код. Сводный список можно найти в устаревших методах и API-интерфейсах Rails 3

4 голосов
/ 06 августа 2014

В общем, есть два места, чтобы проверить, подходит ли платформа Ruby для вашей предпочтительной версии Rails.

  1. Объявление о выпуске в блоге Rails
  2. Примечания к выпуску в каталоге guides/source (также в Интернете по адресу Руководства по Rails и Github )

Вам также может быть полезно посмотреть файл .travis.yml вашей версии.Запись rvm предлагает варианты Ruby, с которыми разработчики могут запускать автоматические тесты.

Естественно, используйте их рекомендации вместе с собственным тестированием.

3 голосов
/ 23 января 2016

Руководство по Rails содержит информацию в разделе "Начало работы с Rails".Я извлекаю информацию из каждой версии руководств:

Rails 3.2 - The Ruby language version 1.8.7 or higher
Rails 4.0 - The Ruby language version 1.9.3 or newer
Rails 4.1 - The Ruby language version 1.9.3 or newer
Rails 4.2 - The Ruby language version 1.9.3 or newer

Насколько я могу судить, это настолько близко к первоисточнику, насколько это возможно для минимальных версий.См. ответ Гамова для рекомендуемых версий.

0 голосов
/ 07 марта 2019

Все эти страницы отстают от текущего состояния. И документация на официальных документах расплывчатая, «версия на языке Ruby ... или выше». Если вы хотите узнать, на каких версиях Ruby протестирована версия Rails, проверьте, проверяет ли Travis CI сообщество Rails. Здесь вы можете увидеть, какая ветвь протестирована против какой версии Ruby.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...