Подтвердить что ты не робот

Какая 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? Если нет, насколько мне нужно сначала обновить его и какие проблемы я могу встретить? Мое приложение делает сложные вещи на уровне базы данных, но все остальное довольно просто.

4b9b3361

Ответ 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), я столкнулся с несколькими странными проблемами.

Ответ 4

Это старый вопрос, но стабильные ветки 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

Rails 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

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

  • 2.2.10
  • 2.3.8
  • 2.4.5

Rails 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

(Из 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 для рекомендуемых версий.