LoginSignup
4
1

More than 5 years have passed since last update.

Ruby on Rails 4からRuby on Rails5にアップグレードした時の修正箇所まとめ

Posted at

また同じ作業を行う機会があるかもしれないので、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日程度で完了。
思いのほか短期間で済んで良かった。
規模が大きいといろいろなエラーが連鎖的に出そうな・・

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1