수색…


Rails 4.2에서 Rails 5.0으로 업그레이드

참고 : Rails 앱을 업그레이드하기 전에 항상 Git과 같은 버전 관리 시스템에 코드를 저장하십시오.


Rails 4.2에서 Rails 5.0으로 업그레이드하려면 Ruby 2.2.2 이상 버전을 사용해야합니다. 필요한 경우 Ruby 버전을 업그레이드 한 후 Gemfile으로 이동하여 다음 줄을 변경하십시오.

gem 'rails', '4.2.X'

에:

gem 'rails', '~> 5.0.0'

명령 줄에서 다음을 실행합니다.

$ bundle update

이제 다음 명령을 사용하여 업데이트 작업을 실행합니다.

$ rake rails:update

이렇게하면 구성 파일을 업데이트하는 데 도움이됩니다. 파일을 덮어 쓸 것인지 묻는 메시지가 표시되며 몇 가지 입력 옵션이 있습니다.

  • 예 - 예, 덮어 씁니다.
  • n - 아니요, 덮어 쓰지 않습니다.
  • a - all, 이것과 다른 모든 것을 덮어 쓴다.
  • q - 종료하다, 중단하다
  • d - diff는 이전과 새로운 차이점을 보여줍니다.
  • h - 도움

일반적으로 이전 파일과 새 파일의 차이점을 확인하여 원하지 않는 변경 사항을 가져 오지 않았는지 확인해야합니다.

Rails 5.0 ActiveRecord 모델은 ActiveRecord::Base 보다는 ApplicationRecord 에서 상속받습니다. ApplicationRecord 는 모든 모델의 수퍼 클래스이며 ApplicationController 가 컨트롤러의 수퍼 클래스 인 것과 유사합니다. 모델을 처리하는이 새로운 방식을 설명하기 위해 application_record.rb app/models/ rb라는 application_record.rb 파일을 만들고이 파일의 내용을 다음과 같이 편집해야합니다.

class ApplicationRecord < ActiveRecord::Base
  self.abstract_class = true
end

Rails 5.0은 콜백을 약간 다르게 처리한다. false 를 반환하는 콜백은 콜백 체인을 정지시키지 않습니다. 이는 Rails 4.2와 달리 후속 콜백이 계속 실행됨을 의미합니다. 업그레이드 할 때 Rails 4.2 동작은 유지되지만 Rails 5.0 동작을 다음을 추가하여 전환 할 수 있습니다.

ActiveSupport.halt_callback_chains_on_return_false = false

config/application.rb 파일에 저장하십시오. throw(:abort) 호출하여 명시 적으로 콜백 체인을 중지 할 수 있습니다.

Rails 5.0에서 ActiveJob 은 Rails 4.2처럼 ActiveJob::Base 아닌 ApplicationJob 에서 상속받습니다. Rails 5.0으로 업그레이드하려면 app/jobs/ 폴더에 application_job.rb 라는 파일을 만듭니다. 해당 파일의 내용을 다음과 같이 편집하십시오.

class ApplicationJob < ActiveJob::Base
end

그런 다음 ActiveJob::Base 아닌 ApplicationJob 에서 상속하도록 모든 작업을 변경해야합니다.

Rails 5.0의 가장 큰 변화 중 하나는 코드를 변경할 필요가 없지만 Rails 애플리케이션에서 명령 행을 사용하는 방식을 바꿀 것입니다. 당신은 사용할 수 있습니다 bin/rails , 아니면 그냥 rails 작업 및 테스트를 실행하려면. 예를 들어 $ rake db:migrate 를 사용하는 대신 $ rails db:migrate 수행 할 수 $ rails db:migrate . $ bin/rails 를 실행하면 사용 가능한 모든 명령을 볼 수 있습니다. bin/rails 사용하여 실행할 수있는 많은 작업은 여전히 rake 사용하여 작동합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow