Какая Ruby on Rails совместима с версией Ruby?
У меня есть старое приложение 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? Если нет, насколько мне нужно сначала обновить его и какие проблемы я могу встретить? Мое приложение делает сложные вещи на уровне базы данных, но все остальное довольно просто.
Ответы
Ответ 1
Из примечания о выпуске 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
Ответ 2
Для версий < 3,2:
http://www.devalot.com/articles/2012/03/ror-compatibility
Для версий >= 4.0:
- Rails 4 рекомендует 2.0 (src: Rails blog)
- Rails 4.1/4.2 рекомендует 2.1 (src: предыдущая страница загрузки Rails)
- Rails 4.2.1 рекомендует 2.2 (src: предыдущая страница загрузки Rails)
- Rails 5.0 требует 2.2.2+ (Rails-блог)
Rails 3.2
Я попытался выйти из этих рекомендаций (в основном, Rails 3.0 на Ruby 2.0 и 2.1), я столкнулся с несколькими странными проблемами.
Ответ 3
Его трудно найти в примечаниях к выпуску. После поиска в течение некоторого времени я мог найти его здесь http://www.devalot.com/articles/2012/03/ror-compatibility
![Ruby Rails Version Compatibility]()
Ответ 4
Это старый вопрос, но стабильные ветки Rails начиная с версии 3.0 используют travis-ci для автоматического тестирования, и тот факт, что rails тестируется на версии ruby, является хорошим показателем того, что он должен работать на этой версии ruby.
Список протестированных версий ruby по ветке rails:
Rails 3.0
Рельсы 3.1
Рельсы 3.2
- 1.8.7
- 1.9.2
- 1.9.3
- 2.0.0
- 2.1.8
- 2.2.6
- 2.3.3
Rails 4.0
Рельсы 4.1
- 1.9.3
- 2.0.0
- 2,1
- 2.2.4
- 2.3.0
Rails 4.2
- 1.9.3
- 2.0.0-p648
- 2.1.10
- 2.2.10
- 2.3.8
- 2.4.5
Rails 5.0
Rails 5.1
Рельсы 5.2
(Из https://www.hmallett.co.uk/2018/08/ruby-and-ruby-on-rails-version-compatibility/)
Ответ 5
Руководство Rails по обновлению Ruby on 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 была официально прекращена. Вы должны обновить как можно раньше.
Ответ 6
В целом есть два места, чтобы проверить, подходит ли платформа Ruby для вашей предпочтительной версии Rails.
- Объявление о выпуске в блоге Rails
- Примечания к выпуску в каталоге
guides/source
(также в Интернете Rails Guides и Github)
Вам также может показаться полезным просмотреть файл .travis.yml
вашей версии. В записи rvm
предлагаются версии Ruby, которые разработчики могут запускать с автоматическими тестами.
Естественно, используйте свои рекомендации вместе со своим собственным тестированием.
Ответ 7
Rails Guides содержит информацию в разделе "Начало работы с 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
Насколько я могу судить, это как можно ближе к первому источнику, так как вы можете получить версии минимум. См. ответ gamov для рекомендуемых версий.