どのRubyon RailsがどのRubyバージョンと互換性がありますか?


82

古い2.1.1Ruby on Railsアプリケーションがあり、Ruby1.8.7を使用するようにシステムがアップグレードされています。もともとは1.8.5程度を使用していました。

パフォーマンス上の理由からRuby1.9.xにアップグレードしたいのですが、おそらく新しいRuby onRailsにもアップグレードしたいと思います。

異なるRubyバージョンとRubyonRailsバージョンの間の互換性の簡単なチャートが見つかりません。

2.1.1はRuby1.9.xで動作しますか?そうでない場合は、最初にどこまでアップグレードする必要があり、どのような問題が発生する可能性がありますか?私のアプリケーションはデータベース層に対して複雑なことをしますが、残りはかなり簡単です。


私は、Rubyいると連動on Railsのどのルビーのバージョンを正確に知りませんが、私は、テストの異なるバージョンとの互換性への最善の方法は、インストールすることだと思うRVMを
のMichałCzapko

Ruby1.9.0は​​Railsで非常にバグがあることが知られており、Ruby1.9.1はRails2.1.1のにリリースされたため、Rails2.1.1がRuby1.9をサポートする可能性は低いです。
アンドリューマーシャル

ルビーの最後のバージョン3.2.22.5レール支持体があるのRuby 2.3.6。その後、Railsを4+に更新する必要があります。
Joshua Pinter 2018

回答:


106

これは古い質問ですが、レールがルビーのバージョンに対してテストされているという事実は、そのバージョンのルビーで動作するはずであることを示す良い兆候です。

2019年4月9日以降、Railsの安定したブランチは自動テストにBuildkiteを使用しており、Railsブランチごとのテスト済みのRubyバージョンのリストは次のとおりです。

Rails 6.0

  • >= 2.5.0

Rails 5.2

Rails 5.1

  • >= 2.2.2

Rails 5.0

  • >= 2.2.2

Rails 4.2

  • >= 1.9.3

レール4.1

  • >= 1.9.3

2019年4月9日より前は、3.0以降のRailsの安定したブランチは自動テストにtravis-ciを使用しており、Railsブランチごとのテスト済みのRubyバージョンのリストは次のとおりです。

Rails 3.0

  • 1.8.7
  • 1.9.2
  • 1.9.3

レール3.1

  • 1.8.7
  • 1.9.2
  • 1.9.3

Rails 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

Rails 5.2

  • 2.2.10
  • 2.3.7
  • 2.4.4
  • 2.5.1

Rails 6.0

  • 2.5.3
  • 2.6.0

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


ありがとうございました。参考までに、あなたのウェブサイトのコメントフォームは機能していません。メールが必要ですが、そのようなフィールドはありません。
ルアンカルロス

1
Railsの最新バージョンは5.2.3です。私はそれ(最新版)のためのRuby 2.6.3をインストールする必要があるのだろうか
カシム

1
Rails 4.1ルビーでの変更には非常に多くの依存関係エラーがあります2.3.0
VishwasNahar19年

Rails4.1はRuby2.6.xより高くなることはできません
Joshua Pinter

46

バージョン3.2未満の場合: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+が必要です(Railsブログ

Rails 3.2

私はそれらの推奨事項(主にRuby2.0と2.1でRails3.0を実行している)から抜け出そうとしましたが、複数の奇妙な問題が発生しました。


1
あなたが遭遇した奇妙な問題について詳しく説明していただけませんか。私たちはruby2.1.5でrails3.2.19を実行しようとしていますが、ActiveRecordによって生成されたクエリに関連する多くの奇妙なエラーに直面しています。
シヴァクマール2015

あなたと同様の問題。私が覚えているように、メソッドの欠落やgemの互換性の問題もありました。
gamov 2015

Rails3.2.13以降は少なくともRuby2.0をサポートしています:stackoverflow.com/a/25165358/3448554
Kelsey Hannan

@gamovリンクが壊れているようです
Rick Smith

@RickSmithはい、Railsサイトが再設計されたダウンロードページはもうありません。ありがとうございます。
gamov 2016年

15

Ruby on Railsのアップグレードに関するRailsガイドには、Rubyバージョンに関するセクションがあります。Railsコアチームによって管理されているため、これはおそらく最良のソースです。

2016年8月の時点で、Railsガイドには次のように書かれています。

1.3Rubyバージョン

Railsは通常、リリースされたときに最新のリリースされたRubyバージョンに近いままです。

  • Rails5にはRuby2.2.2以降が必要です。
  • Rails4はRuby2.0を好み、1.9.3以降が必要です。
  • Rails 3.2.xは、Ruby1.8.7をサポートする最後のブランチです。
  • Rails3以降にはRuby1.8.7以降が必要です。以前のすべてのRubyバージョンのサポートは正式に削除されました。できるだけ早くアップグレードする必要があります。

1
Rails5.1はruby2.4のサポートを発表しているので、Rails5.0はサポートしていないと思います。blog.michelada.io/whats-new-in-rails-51
iheggie

13

リリースノートで見つけるのは難しい。しばらくグーグルした後、私はここでしかそれを見つけることができませんでしたhttp://www.devalot.com/articles/2012/03/ror-compatibility

RubyRailsバージョンの互換性


7
これは今ではかなり時代遅れです...私はもうこれに頼りません。
yekta 2014

はい、ここの表は古くなっています。更新された回答をご覧ください。
gamov 2014年

Rails4をRuby1.9.3で試してみると、Ruby v 2.2.2以降が必要であるというエラーが表示されます
Hack-R

7

Rails 2.2リリースノートから:(あなたが尋ねたものとは異なります)

スレッドセーフに加えて、RailsをJRubyと今後のRuby1.9でうまく機能させるために多くの作業が行われました。Ruby 1.9が動くターゲットであるため、エッジRubyでエッジRailsを実行することは依然として当たり前の提案ですが、Ruby1.9がリリースされたときにRailsはRuby1.9に移行する準備ができています。

Rails2.1.1はRuby1.9と互換性がないと私は信じています、そしてあなたはそのような環境であなた自身でいるでしょう。もちろん、テストスーツが包括的であれば、試してみることができます。また、プロジェクトで使用されている他のすべてのgemを確認する必要がありますが、これは非常に面倒な作業になる可能性があります。

このRailsバージョンを使い続けることを選択した場合、私は1.9.xに移行しません。アップグレードしたいとおっしゃっていたように、Rails 3.0リリースノートに記載されている非推奨を確認し、コードを適応させる必要があります。要約されたリストは、Rails3の非推奨のメソッドとAPIにあります。


私は主にパフォーマンス上の理由からRuby1.9が必要であり、問​​題が発生するため、今のところRuby 1.9.xを使用できるようにしながら、Railsのアップグレードをできるだけ少なくしたいと考えています。Rails2.2はRuby1.9で動作しますか?
TAW

1
@tawそれなら、Rails2.3にアップグレードしたいと思います。リリースノートによると、Ruby 1.9.1
Marcelo Diniz 2012

4

一般に、Rubyプラットフォームがお好みのRailsバージョンに適しているかどうかを確認する場所は2つあります。

  1. Railsブログでのリリース発表
  2. guides/sourceディレクトリ内のリリースノート(Web上のRails GuidesGithubにもあります

また.travis.yml、ご使用のバージョンのファイルを確認すると便利な場合があります。rvmそこのエントリは、開発者が自動テストを実行する可能性のあるRubyバージョンを示唆しています。

当然、独自のテストと一緒に推奨事項を使用してください。


3

Railsガイドの「GettingStartedwithRails」に情報があります。ガイドの各バージョンから情報を引き出しました。

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の回答を参照してください。


1
Railsバージョンで使用できるRubyバージョンの最大数もあるため、これには注意してください。私の答え(例えばRailsの<3.2.22はルビー2.2をサポートしていません)を参照してください
gamov

@gamovありがとう、私はこれらが最小バージョンであると述べるために私の答えを更新しました。
リックスミス


1

これらのページはすべて、現在の状態より遅れています。そして、公式ドキュメントのドキュメントはあいまいです 'Ruby言語バージョン...以上'。あなたが知っていただきたいと思いますどのようなRubyのバージョンRailsのバージョンを知りたい場合は、チェックに対してテストされトラヴィスCIのRailsコミュニティで使用されています。ここでは、どのブランチがどのRubyバージョンに対してテストされているかを確認できます。

編集:

hmallettが述べたように、Railsは別のテストスイートに変更されました。ビルトカイトに変更されました。コードステータスは、ソースリポジトリでいつでも確認できます。


Travis CIは、2019
。– hmallett

あなたは彼らが別のテストスイートに変更したのは正しいです。答えを編集しました。
smek

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.