Hangi Ruby on Rails hangi Ruby sürümüyle uyumludur?


82

Ruby 1.8.7'yi kullanmak için yükseltilmiş eski bir 2.1.1 Ruby on Rails uygulamam var. Başlangıçta 1.8.5 veya daha fazla kullanıyordu.

Performans nedenleriyle Ruby 1.9.x'e ve muhtemelen daha yeni bir Ruby on Rails'e yükseltmek istiyorum.

Farklı Ruby sürümleri ve Ruby on Rails sürümleri arasında kolay bir uyumluluk tablosu bulamıyorum.

2.1.1, Ruby 1.9.x ile çalışacak mı? Değilse, önce ne kadar yükseltmem gerekiyor ve ne tür sorunlarla karşılaşma olasılığım var? Uygulamam, veritabanı katmanına karmaşık şeyler yapıyor, ancak geri kalanı oldukça basit.


Tam olarak çalışır Ruby on hangi Ruby sürümü hangi Yakut, ama uyumluluk yüklemektir farklı sürümlerini test etmenin en iyi yolu düşünüyorum bilmiyorum RVM
Michal Czapko

Rails 2.1.1'in Ruby 1.9.0'ı desteklemesi olası değildir, çünkü Ruby 1.9.0'ın Rails ile çok hatalı olduğu biliniyordu ve Ruby 1.9.1 Rails 2.1.1'den sonra piyasaya sürüldü .
Andrew Marshall

Ruby son sürümü 3.2.22.5 Raylar destekleri olan Ruby 2.3.6 . Bundan sonra, Rails'i 4+ olarak güncellemeniz gerekecek.
Joshua Pinter

Yanıtlar:


109

Bu eski bir sorudur, ancak rayların Ruby'nin bir versiyonuna göre test edilmiş olması, Ruby'nin o versiyonunda çalışması gerektiğinin iyi bir göstergesidir.

9 Nisan 2019'dan bu yana, Rails'in kararlı dalları, otomatik testler için Buildkite'ı kullanıyor ve raylar şubesine göre test edilen Ruby sürümlerinin listesi:

Raylar 6.0

  • >= 2.5.0

Raylar 5.2

Raylar 5.1

  • >= 2.2.2

Raylar 5.0

  • >= 2.2.2

Raylar 4.2

  • >= 1.9.3

Raylar 4.1

  • >= 1.9.3

9 Nisan 2019'dan önce, 3.0'dan beri kararlı Rails dalları, otomatik test için travis-ci kullanıyor ve raylar şubesine göre test edilen Ruby sürümlerinin listesi:

Raylar 3.0

  • 1.8.7
  • 1.9.2
  • 1.9.3

Raylar 3.1

  • 1.8.7
  • 1.9.2
  • 1.9.3

Raylar 3.2

  • 1.8.7
  • 1.9.2
  • 1.9.3
  • 2.0.0
  • 2.1.8
  • 2.2.6
  • 2.3.3

Raylar 4.0

  • 1.9.3
  • 2.0.0
  • 2.1
  • 2.2

Raylar 4.1

  • 1.9.3
  • 2.0.0
  • 2.1
  • 2.2.4
  • 2.3.0

Raylar 4.2

  • 1.9.3
  • 2.0.0-p648
  • 2.1.10
  • 2.2.10
  • 2.3.8
  • 2.4.5

Raylar 5.0

  • 2.2.10
  • 2.3.8
  • 2.4.5

Raylar 5.1

  • 2.2.10
  • 2.3.7
  • 2.4.4
  • 2.5.1

Raylar 5.2

  • 2.2.10
  • 2.3.7
  • 2.4.4
  • 2.5.1

Raylar 6.0

  • 2.5.3
  • 2.6.0

( Https://www.hmallett.co.uk/2018/08/ruby-and-ruby-on-rails-version-compatibility/ adresinden )


Teşekkür ederim. Bilginize, web sitenizdeki yorum formu çalışmıyor, e-posta gerektiriyor ancak orada böyle bir alan yok.
Ruan Carlos

1
Rails'in en son sürümü 5.2.3'tür. Bunun için Ruby 2.6.3'ü yüklemeli miyim merak ediyorum (en son sürüm)
Qasim

1
Rails 4.1Ruby ile 2.3.0
geçişte

Rails 4.1, Ruby 2.6.x'ten daha yükseğe çıkamaz
Joshua Pinter

46

<3.2: http://www.devalot.com/articles/2012/03/ror-compatibility sürümleri için

> = 4.0 sürümleri için:

  • Rails 4, 2.0'ı önerir (src: Rails blogu)
  • Rails 4.1 / 4.2, 2.1'i önerir (src: Rails önceki indirme sayfası)
  • Rails 4.2.1, 2.2'yi önerir (src: Rails önceki indirme sayfası)
  • Rails 5.0, 2.2.2+ gerektirir ( Rails blogu )

Raylar 3.2

Bu önerilerin dışına çıkmayı denedim (esas olarak Ruby 2.0 ve 2.1'de Rails 3.0 çalıştırarak), birçok garip sorunla karşılaştım.


1
lütfen karşılaştığınız tuhaf sorunları ayrıntılarıyla açıklar mısınız? Ruby 2.1.5 üzerinde 3.2.19 raylarını çalıştırmaya çalışıyoruz ve ActiveRecord tarafından oluşturulan sorgularla ilgili birçok tuhaf hatayla karşılaşıyoruz.
Sivakumar

Sizinkine benzer sorunlar. Hatırladığım gibi, eksik yöntemler ve mücevher uyumluluğu sorunları da vardı.
gamov

Rails 3.2.13 ve üstü en az Ruby 2.0'ı destekler: stackoverflow.com/a/25165358/3448554
Kelsey Hannan

@gamov bağlantılarınız bozuk görünüyor
Rick Smith

@RickSmith Evet, Rails sitesinin yeniden tasarlandığı başka indirme sayfası yok, teşekkürler.
gamov

15

Ruby on Rails'i Yükseltme hakkındaki Rails Kılavuzunda Ruby sürümleri hakkında bir bölüm vardır . Rails çekirdek ekibi tarafından kontrol edildiği için muhtemelen en iyi kaynak budur.

Ağustos 2016 itibariyle, Rails Guide şunları okur:

1.3 Ruby Sürümleri

Rails, piyasaya çıktığında genellikle en son yayınlanan Ruby sürümüne yakın kalır:

  • Rails 5, Ruby 2.2.2 veya daha yenisini gerektirir.
  • Rails 4, Ruby 2.0'ı tercih eder ve 1.9.3 veya daha yenisini gerektirir.
  • Rails 3.2.x, Ruby 1.8.7'yi destekleyen son daldır.
  • Rails 3 ve üstü Ruby 1.8.7 veya üstü gerektirir. Önceki Ruby sürümlerinin tümü için destek resmi olarak kaldırıldı. Mümkün olduğunca erken yükseltmelisiniz.

1
Rails 5.1, Ruby 2.4'ü desteklediğini duyurdu, bu yüzden rails 5.0'ın desteklemediği anlamına geldiğini varsayıyorum. Bkz blog.michelada.io/whats-new-in-rails-51
iheggie

13

Sürüm notlarında bulmak zor. Bir süre Google'da araştırdıktan sonra, onu yalnızca burada bulabildim http://www.devalot.com/articles/2012/03/ror-compatibility

Ruby Rails Sürüm Uyumluluğu


7
Bu artık oldukça modası geçmiş ... Artık buna güvenmem.
yekta

Evet, buradaki tablo güncel değil, lütfen güncellenmiş cevabıma bakın.
gamov

Rails 4'ü Ruby 1.9.3 ile denerseniz, Ruby v 2.2.2 veya daha yüksek bir sürüme ihtiyacınız olduğunu belirten bir hata alırsınız
Hack-R

7

Rails 2.2 sürüm notundan: (tam olarak sorduğunuz değil)

İş parçacığı güvenliğinin yanı sıra, Rails'in JRuby ve yakında çıkacak olan Ruby 1.9 ile iyi çalışmasını sağlamak için pek çok çalışma yapıldı. Ruby 1.9'un hareketli bir hedef olmasıyla birlikte, kenarda koşan kenar Rails Ruby hala bir vur ya da kaçırma önerisidir, ancak Rails, Ruby 1.9'a geçiş yaptığında, Ruby 1.9'a geçiş yapmaya hazırdır.

Rails 2.1.1'in Ruby 1.9 ile uyumlu olmadığına ve böyle bir ortamda kendi başınıza olacağınıza inanıyorum. Elbette test elbiseniz kapsamlıysa bir şans verebilirsiniz. Ayrıca, projede kullanılan diğer tüm mücevherleri kontrol etmeniz gerekir ki bu gerçek bir güçlük olabilir.

Bu Rails sürümüne bağlı kalmayı seçerseniz, 1.9.x'e geçmem. Bahsettiğiniz gibi, yükseltmeyi tercih edersiniz, muhtemelen Rails 3.0 sürüm notlarında belirtilen kullanımdan kaldırmaları gözden geçirmeli ve kodunuzu uyarlamalısınız. Özetlenmiş bir liste, Rails 3 kullanımdan kaldırılmış yöntemler ve API'lerde bulunabilir


Çoğunlukla performans nedenlerinden dolayı Ruby 1.9'u istiyorum ve Rails'i olabildiğince az yükseltmek istiyorum ve bu sorunlara neden olacağı için şimdilik Ruby 1.9.x'i kullanabiliyorum. Rails 2.2, Ruby 1.9 ile çalışacak mı?
misket

1
@taw O zaman Rails 2.3'e geçmeyi tercih ederim. Göre serbest bırakma notu , düzgün Ruby 1.9.1 destekler
Marcelo Diniz

4

Genel olarak, Ruby platformunun tercih ettiğiniz Rails sürümüne uygun olup olmadığını kontrol etmek için iki yer vardır.

  1. Rails blogundaki sürüm duyurusu
  2. guides/sourceDizindeki sürüm notları (ayrıca web'de Rails Guides ve Github'da )

Ayrıca .travis.yml, sürümünüzün dosyasına bakmanız da yararlı olabilir . rvm giriş, geliştiricilerin otomatik testler yapabilecekleri Ruby sürümlerini önermektedir.

Doğal olarak, onların önerilerini kendi testlerinizle birlikte kullanın.


3

Rails Kılavuzları , "Rails'e Başlarken" altında bilgi içerir. Kılavuzların her sürümünden bilgi aldım:

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

Anlayabildiğim kadarıyla bu, minimum sürümler için alabileceğiniz kadar birincil kaynağa yakın . Önerilen sürümler için gamov'un yanıtına bakın .


1
Buna dikkat edin çünkü bir Rails sürümünün kullanabileceği maksimum Ruby sürümü de vardır. Cevabımı görün (örn. Rails <3.2.22, Ruby 2.2'yi desteklemiyor)
gamov

@gamov Teşekkürler, bunların minimum sürümler olduğunu belirtmek için cevabımı güncelledim.
Rick Smith

1

Burada ilk cevap oldukça bilgilendirici, ama uyumluluğuna bir yorum var rails-4.2olan ruby-2.4.5gösterilen bir sorun olduğu gibi, burada mesele bu yapar rails-2.4.8ile uyumludur ruby-2.4+, raylar-2.4 olmaz işin başka versiyonu.


1

Tüm bu sayfalar mevcut durumun gerisinde kalıyor. Ve resmi belgelerdeki belgeler belirsiz 'Ruby dili sürümü ... veya üstü'. Ruby'nin hangi Ruby sürümlerini öğrenmek istiyorsanız, bilmek istediğiniz Rails sürümünün , Rails topluluğunun kullandığı Travis CI'ye karşı test edilir . Burada hangi dalın hangi Ruby sürümüne göre test edildiğini görebilirsiniz.

Düzenle:

Hmallett'in bahsettiği gibi, Rails başka bir test paketine geçti. Yerleşik uçurtma olarak değiştirildi . Kod Durumunu her zaman kaynak deposunda kontrol edebilirsiniz.


Travis CI, 9 Nisan 2019'dan beri Rails için kullanılmıyor.
hmallett

Haklısınız başka bir test paketine geçtiler. Cevabımı düzenledim.
Smek

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.