ほろ酔い開発日誌

AI企業のエンジニアのブログです。機械学習、Web開発の技術的お話、ビジネスチックなお話、日常のお役立ち情報など雑多な内容でお送りします。

Rails5.0.0.1からRails5.1.5へのアップデート

はじめに

Railsのプロジェクトのアップデートをしたのでそのときのメモをしておきます。 利用しているGem等に大きくよると思いますが、アップデートの際の参考にはなるかもしれません。

環境: MacOS Sierra

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 の調整

大体以下のようなことをやったと思います。

  1. 最新のバージョンのgemを引っ張ってくる
  2. migrationファイルの一部に[5.1]をつける
  3. 以下の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

終わりに

プロジェクトによって必要な修正は多くなりそうです。アップデート大変です、、