Ich habe eine alte 2.1.1 Ruby on Rails-Anwendung, deren System auf Ruby 1.8.7 aktualisiert wurde. Es wurde ursprünglich 1.8.5 oder so verwendet.
Ich möchte es aus Leistungsgründen auf Ruby 1.9.x und möglicherweise auch auf einen neueren Ruby on Rails aktualisieren.
Ich kann keine einfache Tabelle zur Kompatibilität zwischen verschiedenen Ruby-Versionen und Ruby on Rails-Versionen finden.
Funktioniert 2.1.1 mit Ruby 1.9.x? Wenn nicht, wie weit muss ich zuerst aktualisieren und auf welche Probleme kann ich wahrscheinlich stoßen? Meine Anwendung macht komplizierte Dinge mit der Datenbankebene, aber der Rest ist ziemlich einfach.
ruby-on-rails
ruby
taw
quelle
quelle
Antworten:
Dies ist eine alte Frage, aber die Tatsache, dass Schienen gegen eine Version von Ruby getestet werden, ist ein guter Hinweis darauf, dass es mit dieser Version von Ruby funktionieren sollte.
Seit dem 9. April 2019 verwenden stabile Rails-Zweige Buildkite für automatisierte Tests. Die Liste der getesteten Ruby-Versionen nach Rails-Zweig lautet:
Schienen 6.0
>= 2.5.0
Schienen 5.2
>= 2.2.2
< 2.7
(siehe https://github.com/rails/rails/issues/38426 )Schienen 5.1
>= 2.2.2
Schienen 5.0
>= 2.2.2
Schienen 4.2
>= 1.9.3
Schienen 4.1
>= 1.9.3
Vor dem 9. April 2019 verwenden stabile Rails-Zweige seit 3.0 Travis-CI für automatisierte Tests. Die Liste der getesteten Ruby-Versionen nach Rails-Zweig lautet:
Schienen 3.0
Schienen 3.1
Schienen 3.2
Schienen 4.0
Schienen 4.1
Schienen 4.2
Schienen 5.0
Schienen 5.1
Schienen 5.2
Schienen 6.0
(Von https://www.hmallett.co.uk/2018/08/ruby-and-ruby-on-rails-version-compatibility/ )
quelle
Rails 4.1
Ruby2.3.0
Für Versionen <3.2: http://www.devalot.com/articles/2012/03/ror-compatibility
Für Versionen> = 4.0:
Schienen 3.2
Ich habe versucht, aus diesen Empfehlungen herauszukommen (hauptsächlich Rails 3.0 unter Ruby 2.0 und 2.1). Ich bin auf mehrere seltsame Probleme gestoßen.
quelle
Das Rails-Handbuch zum Aktualisieren von Ruby on Rails enthält einen Abschnitt zu Ruby-Versionen . Dies ist wahrscheinlich die beste Quelle, da sie vom Rails-Kernteam kontrolliert wird.
Ab August 2016 lautet der Rails Guide:
quelle
Es ist schwierig, es in Versionshinweisen zu finden. Nachdem ich einige Zeit gegoogelt hatte, konnte ich es nur hier finden http://www.devalot.com/articles/2012/03/ror-compatibility
quelle
Aus Rails 2.2 Versionshinweis: (nicht genau der, den Sie gefragt haben)
Ich würde glauben, dass Rails 2.1.1 nicht mit Ruby 1.9 kompatibel ist und Sie in einer solchen Umgebung alleine wären. Sie können es natürlich ausprobieren, wenn Ihr Testanzug umfassend ist. Außerdem müssten Sie alle anderen im Projekt verwendeten Edelsteine überprüfen, was ein echtes Problem sein könnte.
Wenn Sie sich für diese Rails-Version entscheiden, würde ich nicht auf 1.9.x migrieren. Wie Sie bereits erwähnt haben, würden Sie ein Upgrade vorziehen. Sie sollten wahrscheinlich die in den Versionshinweisen zu Rails 3.0 genannten Verwerfungen durchgehen und Ihren Code anpassen. Eine zusammengefasste Liste finden Sie in veralteten Methoden und APIs von Rails 3
quelle
Im Allgemeinen können Sie an zwei Stellen prüfen, ob eine Ruby-Plattform für Ihre bevorzugte Rails-Version geeignet ist.
guides/source
Verzeichnis (auch im Internet unter Rails Guides und Github )Möglicherweise ist es auch hilfreich, sich die
.travis.yml
Datei Ihrer Version anzusehen . Dasrvm
Eintrag schlägt die Ruby-Versionen vor, für die die Entwickler möglicherweise automatisierte Tests ausführen.Verwenden Sie ihre Empfehlungen natürlich zusammen mit Ihren eigenen Tests.
quelle
Rails Guides enthält Informationen unter "Erste Schritte mit Rails". Ich habe Informationen aus jeder Version der Anleitungen abgerufen:
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
Soweit ich das beurteilen kann, kommt dies einer Primärquelle so nahe, wie es für Mindestversionen möglich ist . Siehe Gamov Antwort für empfohlene Versionen.
quelle
die erste Antwort hier ist sehr informativ, aber ich habe einen Kommentar über die Vereinbarkeit
rails-4.2
mitruby-2.4.5
, wie es ein Problem dargestellt ist hier , dass Problem machtrails-2.4.8
nur kompatibel mitruby-2.4+
jeder anderen Version von Schienen-2.4 wird nicht funktionieren.quelle
Alle diese Seiten bleiben hinter dem aktuellen Status zurück. Und die Dokumentation in den offiziellen Dokumenten ist vage "Die Ruby-Sprachversion ... oder höher". Wenn Sie wissen möchten, welche Ruby-Versionen die Rails-Version, die Sie wissen möchten, getestet hat, überprüfen Sie das von der Rails-Community verwendete Travis CI . Hier können Sie sehen, welcher Zweig gegen welche Ruby-Version getestet wird.
Bearbeiten:
Wie von hmallett erwähnt, hat Rails zu einer anderen Testsuite gewechselt. Es wurde geändert in Built Kite . Sie können den Codestatus jederzeit im Quell-Repository überprüfen.
quelle
Ich glaube, diese Regression besagt, dass Rails 4.1 nicht mit Ruby 2.3 funktionieren kann: https://bugs.ruby-lang.org/issues/12353
quelle