Mam starą aplikację Ruby on Rails w wersji 2.1.1, z uaktualnionym systemem do obsługi Rubiego 1.8.7. Pierwotnie używał 1.8.5 lub tak.
Chcę go zaktualizować do Ruby 1.9.x ze względu na wydajność i prawdopodobnie również do nowszej wersji Ruby on Rails.
Nie mogę znaleźć żadnej łatwej tabeli kompatybilności między różnymi wersjami Ruby i wersjami Ruby on Rails.
Czy 2.1.1 będzie działać z Ruby 1.9.x? Jeśli nie, to jak daleko muszę go najpierw zaktualizować i jakie problemy prawdopodobnie napotkam? Moja aplikacja robi skomplikowane rzeczy z warstwą bazy danych, ale reszta jest dość prosta.
ruby-on-rails
ruby
wyprawiać
źródło
źródło
Odpowiedzi:
To stare pytanie, ale fakt, że rails są testowane z wersją ruby, jest dobrą wskazówką, że powinien on działać na tej wersji ruby.
Od 9 kwietnia 2019 stabilne gałęzie Railsów używają Buildkite do automatycznego testowania, a lista przetestowanych wersji Ruby według gałęzi railsów to:
Szyny 6.0
>= 2.5.0
Szyny 5.2
>= 2.2.2
< 2.7
(patrz https://github.com/rails/rails/issues/38426 )Szyny 5.1
>= 2.2.2
Rails 5.0
>= 2.2.2
Szyny 4.2
>= 1.9.3
Szyny 4.1
>= 1.9.3
Przed 9 kwietnia 2019, stabilne gałęzie Railsów od 3.0 używają travis-ci do automatycznego testowania, a lista przetestowanych wersji ruby, według gałęzi rails, to:
Rails 3.0
Szyny 3.1
Szyny 3.2
Szyny 4.0
Szyny 4.1
Szyny 4.2
Rails 5.0
Szyny 5.1
Szyny 5.2
Szyny 6.0
(Od https://www.hmallett.co.uk/2018/08/ruby-and-ruby-on-rails-version-compatibility/ )
źródło
Rails 4.1
z ruby2.3.0
W przypadku wersji <3.2: http://www.devalot.com/articles/2012/03/ror-compatibility
Dla wersji> = 4.0:
Szyny 3.2
Próbowałem wyjść poza te zalecenia (głównie uruchamiając Rails 3.0 na Ruby 2.0 i 2.1), napotkałem wiele dziwnych problemów.
źródło
Poradnik Rails dotyczący uaktualniania Ruby on Rails zawiera sekcję poświęconą wersjom Rubiego . Jest to prawdopodobnie najlepsze źródło, ponieważ jest kontrolowane przez główny zespół Railsów.
W sierpniu 2016 r. Przewodnik po Railsach brzmi:
źródło
Trudno go znaleźć w informacjach o wydaniu. Po pewnym czasie googlowania znalazłem go tylko tutaj http://www.devalot.com/articles/2012/03/ror-compatibility
źródło
Z informacji o wydaniu Rails 2.2: (nie dokładnie to, o które prosiłeś)
Wierzę, że Rails 2.1.1 nie jest kompatybilny z Ruby 1.9 i będziesz sam w takim środowisku. Oczywiście możesz spróbować, jeśli twój kombinezon testowy jest wszechstronny. Musiałbyś też sprawdzić wszystkie inne klejnoty użyte w projekcie, co może być prawdziwym kłopotem.
Jeśli zdecydujesz się pozostać przy tej wersji Railsów, nie przeprowadziłbym migracji do 1.9.x. Jak wspomniałeś, wolałbyś go zaktualizować, powinieneś prawdopodobnie przejść przez przestarzałe informacje o wydaniu Rails 3.0 i dostosować swój kod. Podsumowaną listę można znaleźć w przestarzałych metodach i API Railsach 3
źródło
Ogólnie rzecz biorąc, istnieją dwa miejsca, w których można sprawdzić, czy platforma Ruby jest odpowiednia dla preferowanej wersji Railsów.
guides/source
katalogu (także w sieci na Rails Guides i Github )Przydatne może być również przejrzenie
.travis.yml
pliku posiadanej wersji. Plikrvm
Wpis nie sugeruje wersji Ruby, że deweloperzy mogą działać przeciwko zautomatyzowanych testów.Oczywiście, korzystaj z ich zaleceń razem z własnymi testami.
źródło
Rails Guides zawiera informacje w sekcji „Getting Started with Rails”. Wyciągnąłem informacje z każdej wersji przewodników:
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
O ile wiem, jest to tak bliskie pierwotnemu źródłu, jak tylko można uzyskać w przypadku wersji minimalnych . Zobacz odpowiedź gamov na zalecane wersje.
źródło
pierwsza odpowiedź tutaj jest dość pouczająca, ale mam komentarz na temat kompatybilności
rails-4.2
zruby-2.4.5
, ponieważ jest tu pokazany problem , który sprawia, że jestrails-2.4.8
kompatybilny tylko zruby-2.4+
, żadna inna wersja rails-2.4 nie będzie działać.źródło
Wszystkie te strony mają opóźnienie w obecnym stanie. Dokumentacja w oficjalnych dokumentach jest niejasna: „Wersja językowa Ruby ... lub wyższa”. Jeśli chcesz wiedzieć, z którymi wersjami Ruby jest testowana wersja Railsów, którą chciałbyś wiedzieć, sprawdź Travis CI , z którego korzysta społeczność Railsów. Tutaj możesz zobaczyć, która gałąź jest testowana pod kątem której wersji Ruby.
Edytować:
Jak wspomniał hmallett, Railsy zmieniły się na inny zestaw testowy. Został zmieniony na zbudowany latawiec . Zawsze możesz sprawdzić stan kodu w repozytorium źródłowym.
źródło
Uważam, że regresja mówi, że Rails 4.1 nie mogą współpracować z Ruby 2.3: https://bugs.ruby-lang.org/issues/12353
źródło