また同じ作業を行う機会があるかもしれないので、Railsのバージョンを上げる際に行ったことをメモしておこうと思います。
変更したRuby on Railsバージョン
Version 4.2.7.1 → Version 5.0.0.1
バージョンアップに伴って修正した箇所
Gemのバージョン・依存関係を修正
Version 4.2.7.1のGemfileの内容でBundle install or Bundle updateすると、バージョンが古くて依存関係が解決できないという趣旨のメッセージが表示される。
そのため、表示されたメッセージに従ってGemfileのバージョンを修正すると解決。
turbolinksを無効化している部分のlink_toパラメータの書き換え
turbolinksの仕様変更に伴い、JavaScript(JQUERY)のイベントが発火しないページがあったため、
【Rails4】
<%= link_to "リンク", new_hoge_path, { "data-no-turbolink" => "false" } %>
【Rails5】
<%= link_to "リンク ", new_hoge_path , data: { turbolinks: false } %>
に変更。
「redirect_to :back」を「redirect_back」に変更
「redirect_to :back」はDeprecatedらしいので、「redirect_to :back」の部分は「redirect_back」に書き換え。
----- 参考URL-----
https://makandracards.com/alexander-m/39297-rails-5-improve-redirect_to-back-with-new-redirect_back-method
【Rspec】i18nが原因らしきエラーの発生
Rspecでテストを流した際に、
「Hoge2rtranslation missing: ja.activerecord.errors.hoge1.event.attributes.hoge2.required」
とエラーメッセージが表示され、一見、i18nの変換エラーかと思ったが、hoge2のモデルデータをFactoryGirl.create(hoge2)で作れば解決。
【Rspec】発生エラーの種類
expect do
//テストコード
end.to raise_error( ActiveRecord::RecordNotUnique )
の「ActiveRecord::RecordNotUnique 」例外は
「ActiveRecord::RecordInvalid」
に変更されていました。
そのため、
expect do
//テストコード
end.to raise_error( ActiveRecord::RecordInvalid )
に変更。
感想
修正はいろいろと原因を調べながら1~2日程度で完了。
思いのほか短期間で済んで良かった。
規模が大きいといろいろなエラーが連鎖的に出そうな・・