はじめに
Railsのプロジェクトのアップデートをしたのでそのときのメモをしておきます。 利用しているGem等に大きくよると思いますが、アップデートの際の参考にはなるかもしれません。
Rubyのアップデート
Rubyのバージョンも2.4.1から2.5.0へバージョンアップしました。 rbenvを使っています。
$ brew upgrade ruby-build # ちゃんとこれしないとinstall出来るリストが古いまま $ rbenv install --list $ rbenv install 2.5.0 $ rbenv global 2.5.0
参考: rbenvをupdateして最新のRubyバージョンをインストール | 酒と涙とRubyとRailsと
factory girlのアップデート
factory_botに代わっているようです。
#old gem "factory_girl" #new gem "factory_bot"
関連箇所を一括変換。
$ grep -e FactoryGirl **/*.rake **/*.rb -l | xargs sed -i "" "s|FactoryGirl|FactoryBot|" $ grep -e factory_girl **/*.rake **/*.rb -l | xargs sed -i "" "s|factory_girl|factory_bot|"
参考: factory_bot/UPGRADE_FROM_FACTORY_GIRL.md at v4.9.0 · thoughtbot/factory_bot · GitHub
acts-as-taggable-on の調整
大体以下のようなことをやったと思います。
- 最新のバージョンのgemを引っ張ってくる
- migrationファイルの一部に[5.1]をつける
- 以下のissueを参考にadd_indexの部分の書き換え
mbleigh/acts-as-taggable-on
https://github.com/mbleigh/acts-as-taggable-on/issues/845
form_forからform_withへ
5.1系からform_withなのでform_withへ書き換えます。 以下のようなところを参考に。
Rails 5.1〜: 'form_with' APIドキュメント完全翻訳
belongs_to
belongs_toがdefaultでrequired: trueになったようです。これ意外とハマりポイントでした。
Rails5からbelongs_to関連はデフォルトでrequired: trueになる - Qiita
終わりに
プロジェクトによって必要な修正は多くなりそうです。アップデート大変です、、