Ruby on Rails
레일 업그레이드
수색…
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
사용하여 작동합니다.