がんばるぞいクラブをRails5にアップデートした

最近は触ったことない技術を試しサンプルをつくることを無限に繰り返していたのだけれど、ちょっと実際に動いているものに適用しようと思い、がんばるぞいクラブで試してみることにした。

その第一弾、準備としてRails5.0.1にアップデートした。今まではRails4.2.5で動いていたので以下の手順でアップデートした。

  • Rails4.2の最新版にあげる(4.2.7)
  • Rails5にあげる
  • updateスクリプトを走らせる
  • スクリプトで消された部分を設定し直す

小さいサービスであること&Rails5にアップデートする知見が既に広く公開されていたことから特にハマることもなくできた。皆々様に感謝です🙏具体的な対応した箇所はこんなところだった。

対応箇所

activemodel-serializers-xmlいれた

ActiveModel::Serializers::Xmlがgemに切り出されたのでgemでいれて対応。

http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#xml-serialization

draperを3.0.0.pre1にあげた

decorator層を追加するgemのdraperですが、以下のようなRails側の変更でバージョンを上げる必要があった。

https://github.com/drapergem/draper/issues/681

Active Recordの継承元をApplicationRecordに変更

Rails5からModelはActiveRecord::Baseを直接継承するのではなく、ApplicationRecordから継承するようになっいてるのでそれに合わせて修正。

http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#active-record-models-now-inherit-from-applicationrecord-by-default

rails_12factorを削除

Railsのコア機能に組み込まれたのでgemの方は削除。herokuをつかっていたので、環境変数も設定した。

https://github.com/heroku/rails_12factor#rails-5

Rails5の自動読み込みの仕様変更に対応

以下のように設定。

Rails.application.config.enable_dependency_loading to true.

http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#active-record-models-now-inherit-from-applicationrecord-by-default

REF

Rails5アップデートに際して以下ページを参考にさせていただきました。ありがとうございました 🙏