LoginSignup
6
6

More than 5 years have passed since last update.

Rails3からRails5への移行メモ

Last updated at Posted at 2016-11-13

無謀にもシステムを Rails3 から Rails5 に移行完了した時のメモです。
アップデートは辞めて、新規作成でコードを確認しながら移行しました。

ReadyForRailsで対応の確認

ここで、Rails5に移行可能かどうかと修正範囲を図る。
載っていないものは、githubで直接対応を調べる。
http://www.ready4rails.net/

全体の流れ

  • Gemfileの修正
  • db/migrateを新規Railsへコピー
  • モデルのコピーと変更
  • config/routesのコピーと変更
  • controllerの新規作成とactionのコピーと変更
  • Viewのパーシャルの変更
  • 設定ファイルの変更
  • minitestへの書き換え
  • 最後にturbolinks5の有効化

Gemfileの修正

いらなくなったものが多いので、行づつ確認しながらのほうがいい。

db/migrateのコピー

migrateの廃止内容は変わっていない。

モデルのコピーと変更

cancanをcancancanに変更

認可にcancanを使っていたので、対応版に変更、コードに変更なし。

モデルからattr_accessibleの削除

モデル責務から開放する。
Rails3を使っていると、バリデーションとパラメーターのホワイトリストがごっちゃになって混乱しやすいので辞める。

モデルのベースクラス名の変更

ActiveRecordからApplicationRecordに変更する。

正規表現の¥^ $から¥A¥zに変更

セキュリティ上、変更すべき。

Scopeのラムダを変更

ラムダのみ許容するようになった。
http://qiita.com/tbpgr/items/0b621854900c132d8a42

conditionsの削除

conditionsは廃止が多いので、whereとメソッドチェインの組み合わせに変更する。

StrongParametersの導入

コントローラーは、scaffold_controllerを使って新規作成して変更する方がいい。
コントローラーは、大きく変更されるので、今後も舵きりに専念させるほうがいい。

Viewのパーシャルの変更

パーシャルレンダリングをcollectionを使うように変更する。
N+1 partial renderingの項目

rspecからminitestへ移行

今後の恩恵を受けるためにも移行しきってしまったほうがいい。

設定ファイルの変更

secret_key_baseの設定変更
行を確認しながら修正する。

最後にturbolinks5の有効化

おそらくturbolinksを初期処理で無効化しているでしょう。
(Turbolinks3を趣味を超えて導入しているところを私は見たことがない。)
turbolink5はモバイルにも対応していて、使ってみたところ邪魔もしなかった。

6
6
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
6
6