어떤 Ruby on Rails가 어떤 Ruby 버전과 호환 되나요?


82

이전 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에서 작동합니까? 그렇지 않은 경우 얼마나 먼저 업그레이드해야하며 어떤 종류의 문제가 발생할 가능성이 있습니까? 내 응용 프로그램은 데이터베이스 계층에 대해 복잡한 작업을 수행하지만 나머지는 상당히 간단합니다.


Ruby on Rails의 어떤 버전이 어떤 Ruby와 함께 작동하는지 정확히 알 수는 없지만 다른 버전 호환성을 테스트하는 가장 좋은 방법은 RVM
Michał Czapko

Rails 2.1.1이 Ruby 1.9를 지원할 가능성은 희박합니다. Ruby 1.9.0은 Rails에서 매우 버그가있는 것으로 알려졌고 Ruby 1.9.1은 Rails 2.1.1 이후 에 출시 되었습니다 .
Andrew Marshall

Rails 3.2.22.5가 지원 하는 마지막 Ruby 버전 은 Ruby 2.3.6 입니다. 그 후에 Rails를 4+로 업데이트해야합니다.
Joshua Pinter

답변:


106

이것은 오래된 질문이지만 레일이 루비 버전에 대해 테스트되었다는 사실은 해당 버전의 루비에서 작동해야한다는 좋은 표시입니다.

2019 년 4 월 9 일부터 Rails의 stable 브랜치는 자동 테스트를 위해 Buildkite를 사용하며, Rails 브랜치에서 테스트 한 루비 버전 목록은 다음과 같습니다.

레일스 6.0

  • >= 2.5.0

레일스 5.2

레일스 5.1

  • >= 2.2.2

레일스 5.0

  • >= 2.2.2

레일즈 4.2

  • >= 1.9.3

레일스 4.1

  • >= 1.9.3

2019 년 4 월 9 일 이전에 3.0 이후의 안정적인 Rails 브랜치는 자동화 된 테스트에 travis-ci를 사용하며, 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

레일스 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

레일즈 4.2

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

레일스 5.0

  • 2.2.10
  • 2.3.8
  • 2.4.5

레일스 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

레일스 6.0

  • 2.5.3
  • 2.6.0

( https://www.hmallett.co.uk/2018/08/ruby-and-ruby-on-rails-version-compatibility/에서 )


감사합니다. 참고로 웹 사이트의 댓글 양식이 작동하지 않고 이메일이 필요하지만 해당 필드가 없습니다.
Ruan Carlos

1
Rails의 최신 버전은 5.2.3입니다. Ruby 2.6.3을 설치해야하는지 궁금합니다 (최신 버전)
Qasim

1
에 변경에 많은 의존성 오류가 Rails 4.1루비는2.3.0
VISHWAS 하르

Rails 4.1은 Ruby 2.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 블로그 )

레일스 3.2

나는 이러한 권장 사항 (주로 Ruby 2.0 및 2.1에서 Rails 3.0을 실행)에서 벗어나려고 시도했지만 여러 가지 이상한 문제가 발생했습니다.


1
당신이 만난 이상한 문제에 대해 자세히 설명해 주시겠습니까? 우리는 루비 2.1.5에서 레일 3.2.19를 실행하려고 노력하고 있으며 ActiveRecord에서 생성 된 쿼리와 관련된 많은 이상한 오류에 직면하고 있습니다.
Sivakumar 2015

당신과 비슷한 문제. 내가 기억하는 것처럼, 메소드 누락과 gem 호환성 문제도있었습니다.
gamov

Rails 3.2.13 이상은 최소 Ruby 2.0을 지원합니다. stackoverflow.com/a/25165358/3448554
Kelsey Hannan 2015

@gamov 귀하의 링크가 깨진 것으로 나타났습니다
릭 스미스

@RickSmith 예, Rails 사이트 재 설계에 더 이상 다운로드 페이지가 없습니다. 감사합니다.
gamov

15

Ruby on Rails 업그레이드에 대한 Rails 가이드에는 Ruby 버전 에 대한 섹션이 있습니다 . 이것은 Rails 핵심 팀에 의해 제어되기 때문에 아마도 최고의 소스 일 것입니다.

2016 년 8 월 현재 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 버전에 대한 지원이 공식적으로 중단되었습니다. 가능한 한 빨리 업그레이드해야합니다.

1
Rails 5.1은 루비 2.4에 대한 지원을 발표하므로 Rails 5.0이이를 지원하지 않는다는 것을 의미합니다. 참조 blog.michelada.io/whats-new-in-rails-51
iheggie

13

릴리스 노트에서 찾기가 어렵습니다. 얼마 동안 인터넷 검색을 한 후 http://www.devalot.com/articles/2012/03/ror-compatibility 에서만 찾을 수 있습니다 .

Ruby Rails 버전 호환성


7
이것은 지금 꽤 구식입니다 ... 더 이상 이것에 의존하지 않을 것입니다.
yekta

예, 여기 표는 오래되었습니다. 업데이트 된 답변을 참조하십시오.
gamov

Ruby 1.9.3과 함께 Rails 4를 사용하면 Ruby v 2.2.2 이상이 필요하다는 오류 메시지가 표시됩니다
Hack-R

7

Rails 2.2 릴리스 노트에서 : (정확히 요청한 것은 아님)

스레드 안전성과 함께 Rails가 JRuby 및 곧 출시 될 Ruby 1.9에서 잘 작동하도록하기 위해 많은 작업이 수행되었습니다. 루비 1.9가 움직이는 타겟이 되었기 때문에 에지 루비에서 에지 레일즈를 실행하는 것은 여전히별로 좋지 않은 제안이지만 레일스는 루비 1.9가 출시되면 루비 1.9로 전환 할 준비가되어 있습니다.

저는 Rails 2.1.1이 Ruby 1.9와 호환되지 않는다고 믿고 있습니다. 그런 환경에서는 여러분이 혼자 일 것입니다. 물론 테스트 슈트가 포괄적이면 시도해 볼 수 있습니다. 또한 프로젝트에 사용 된 다른 모든 보석을 확인해야하므로 정말 번거로울 수 있습니다.

이 Rails 버전을 고수한다면 1.9.x로 마이그레이션하지 않을 것입니다. 업그레이드를 선호한다고 언급했듯이 Rails 3.0 릴리스 노트에 언급 된 지원 중단을 검토하고 코드를 수정해야합니다. 요약 된 목록은 Rails 3에서 사용되지 않는 메소드 및 API 에서 찾을 수 있습니다.


나는 성능상의 이유로 주로 Ruby 1.9를 원하고, 문제를 일으킬 것이기 때문에 지금은 Ruby 1.9.x를 사용할 수있는 상태에서 가능한 한 적게 Rails를 업그레이드하고 싶습니다. Rails 2.2는 Ruby 1.9에서 작동합니까?
taw

1
@taw 그런 다음 Rails 2.3으로 업그레이드하고 싶습니다. 에 따르면 릴리스 노트 , 제대로 루비 1.9.1 지원
마르셀 디 니즈

4

일반적으로 Ruby 플랫폼이 선호하는 Rails 버전에 적합한 지 확인할 수있는 두 곳이 있습니다.

  1. Rails 블로그 의 릴리스 발표
  2. guides/source디렉토리 의 릴리스 노트 ( Rails GuidesGithub 웹에도 있음 )

.travis.yml버전 의 파일 을 보는 것도 유용 할 수 있습니다 . 이 rvm항목은 개발자가 자동화 된 테스트를 실행할 수있는 Ruby 버전을 제안합니다.

당연히 자신의 테스트와 함께 권장 사항을 사용하십시오.


3

Rails Guides 는 "Getting Started with 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의 답변 을 참조하십시오 .


1
Rails 버전이 사용할 수있는 최대 Ruby 버전도 있으므로주의해야합니다. (3.2.22 루비 2.2을 지원하지 않습니다 <예 : 레일) 내 대답을 참조하십시오
gamov

@gamov 감사합니다. 최소 버전임을 알리기 위해 답변을 업데이트했습니다.
Rick Smith


1

모든 페이지는 현재 상태보다 뒤처집니다. 그리고 공식 문서의 문서는 모호한 'The Ruby 언어 버전 ... 이상'입니다. 어떤 Ruby 버전을 알고 싶은지 알고 싶은 Rails 버전을 Rails 커뮤니티에서 사용 중인 Travis CI 를 확인하여 테스트 합니다. 여기에서 어떤 브랜치가 어떤 Ruby 버전에서 다시 테스트되는지 확인할 수 있습니다.

편집하다:

hmallett이 언급 한 것처럼 Rails는 다른 테스트 스위트로 변경되었습니다. Built kite 로 변경되었습니다 . 소스 저장소에서 언제든지 코드 상태를 확인할 수 있습니다.


Travis CI는 2019
hmallett

그들이 다른 테스트 스위트로 변경 한 것이 맞습니다. 내 대답을 편집했습니다.
Smek

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.