【Rails】4.2系から5.0系へバージョンアップ!(後編) ちょと面倒かも・・・

今回は前回の続きで、railsを4.2系から5.0系へバージョンアップした後の対応についてまとめました。
けっこうやることが多いので粛々とやっていきましょう!
 

動作確認環境


  • Mac OS Sierra 10.12.6
  • Rails 5.0.4
  • ruby 2.4.1p111

 

1. rails 5系から各modelが「ApplicationRecord」を継承するようになったので対応する


1-1. app/models/application_record.rbを新規作成

 
1-2. 各modeldeでApplicationRecordを継承するように変更

 

2. spec実行時にエラー対応


 
2-1. gemを追加し、bundle installを実施

 
2-2. spec/rails_helper.rbに設定を追加

 

3. ArgumentError: Attempting to generate a URL from non-sanitized request parameters! An attacker can inject malicious data into the generated URL, such as changing the host. Whitelist and sanitize passed parameters to be secure.


paramsがpermittedでないときに例外が発生するので、「permit!」メソッドを追加

 

4. DEPRECATION WARNING: The factory_girl gem is deprecated. Please upgrade to factory_bot.


Factory GirlをFactory Botに変更する
 
4-1. gemを追加し、bundle installを実施

  
4-2. プロジェクト内で「FactoryGirl」と記述している箇所を「FactoryBot」に置換する

 

5. DEPRECATION WARNING: serve_static_files is deprecated and will be removed in Rails 5.1.


config/environments配下の各環境のファイルに記述されている、「config.serve_static_files」を「config.public_file_server.enabled」に変更する

 

6. DEPRECATION WARNING: static_cache_control is deprecated and will be removed in Rails 5.1.


config/environments配下の各環境のファイルに記述されている、「config.static_cache_control」を「config.public_file_server.headers」に変更する

 

7. DEPRECATION WARNING: ActiveRecord::Base.raise_in_transactional_callbacks= is deprecated, has no effect and will be removed without replacement.


config/application.rbの以下の記述を削除

 

8. DEPRECATION WARNING: render :text is deprecated because it does not actually render a text/plain response.


render text:をrender plain:に変更

 

9. DEPRECATION WARNING: Accessing mime types via constants is deprecated. Please change Mime::CSV to Mime[:csv].


Mime::CSVをMime[:csv]に変更

 

10. DEPRECATION WARNING: Using positional arguments in integration tests has been deprecated,in favor of keyword arguments, and will be removed in Rails 5.1.


リクエスト時にパラメータがある場合は、params:を指定する

 

11. DEPRECATION WARNING: alias_method_chain is deprecated. Please, use Module#prepend instead.


「rails-flog」がalias_method_chainを使用していたので、バージョンを上げてbundle installを実施

 

12. DEPRECATION WARNING: to_hash unexpectedly ignores parameter filtering, and will change to enforce it in Rails 5.1. Enable raise_on_unfiltered_parameters to respect parameter filtering, which is the default in new applications. For the existing deprecated behaviour, call #to_unsafe_h instead.


「to_hash」メソッドを「to_unsafe_h」メソッドに変更

 

13. DEPRECATION WARNING: uniq is deprecated and will be removed from Rails 5.1 (use distinct instead)


ActiveRecordの「uniq」メソッドを「distinct」メソッドに変更

 

以上で、バージョンアップ後の対応は完了です!
実際に僕が業務で対応した事を記載したので、バージョンアップされる方は参考にしてみてください。
 
お疲れ様でした!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*
*
Website