Rails/アップグレード/4.2から5.0
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(Rails/アップグレード/4.2から5.0);
*目次 [#l9a304dd]
#contents
*関連ページ [#he8e43a0]
*参考情報 [#ic168dd4]
*Rails 4.2からRails 5.0 [#kae9c16c]
**手順 [#s9cb922d]
-GemfileのRailsバージョンをRails.5.0系の最新版に書き換え...
bundle update
-設定ファイルの更新。古い設定ファイルを上書きしようとして...
bundle exec rails app:update
-IntelliJの場合Compare with Branchで比較する(Commitだと変...
-app/models/application_record.rbを作成
#pre{{
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
end
}}
-各モデルクラスが継承するようにする(必須ではない)。
#pre{{
class Book < ApplicationRecord
end
}}
**移行後のWarningつぶし [#ye6eeaa1]
-デバッグ実行 or テストを実行してWarningをつぶしていく
***MySQLの絵文字 [#ib17db7f]
-MySQLで絵文字を使っている場合はar_innodb_row_format.rbの...
***before_filter is deprecated [#o702369a]
-before_actionに書き換える。
***Rails Controller Testingのエラー [#oe8e550f]
-controllerのテストでassignを使っている場合以下のようなエ...
#pre{{
NoMethodError: assigns has been extracted to a gem. To co...
add `gem 'rails-controller-testing'` to your Gemf...
}}
-Gemfileにrails-controller-testingを追加する
#pre{{
group :test do
gem "rails-controller-testing"
end
}}
-.DEPRECATION WARNING: Using positional arguments in func...
-以下のようなエラー。
#pre{{
.DEPRECATION WARNING: Using positional arguments in funct...
in favor of keyword arguments, and will be removed in Rai...
Deprecated style:
get :show, { id: 1 }, nil, { notice: "This is a flash mes...
New keyword style:
get :show, params: { id: 1 }, flash: { notice: "This is a...
session: nil # Can safely be omitted.
}}
-指示通りにparamsやflashなどのキーワードを追加する。
#pre{{
post :create, params: {book: { author: @book.author...
get :show, params: {id: @book}
}}
***Mime::JSON to: Mime::Type[:JSON] [#t31298d2]
-[[Deprecated warning - Mime::JSON · Issue #789 · rbenv/r...
-Rails 5.0.x系の場合jbuilderの指定は以下がデフォルト
#pre{{
gem 'jbuilder', '~> 2.5'
}}
***take_paramsの書き換え [#r3d2681f]
-take_paramsで「DEPRECATION WARNING: Method update is dep...
-ApplicationController::ParametersがHashを継承しなくなる...
#pre{{
def take_params(*param_keys)
overwrites = param_keys.extract_options!
param_keys = default_take_param_keys if param_keys.bl...
params.to_unsafe_h.extract!(*param_keys).update(overw...
end
helper_method :take_params
}}
***Protected Attributesの廃止 [#h4997113]
-Rails 4では[[GitHub - rails/protected_attributes: Protec...
-CarrierWaveをStrong Parameter対応にするには、:icon、icon...
***XMLシリアライズ [#z495c8e8]
-RailsのActiveModel::Serializers::Xmlが外部に移転。to_xml...
gem 'activemodel-serializers-xml'
***ActiveRecord::Base.raise_in_transactional_callbacks= i...
-environment.rbの以下の行で発生
require File.expand_path('../application', __FILE__)
-実際はapplication.rbに含まれる以下の行を削除する。
config.active_record.raise_in_transactional_callbacks =...
***Using a dynamic :action segment in a route is deprecat...
-routes.rbから、以下のような部分を削除orコメントアウト
# get ':namespace:controller(/:action(/:id))(.:format)'
***Minitestの実行後レポート表示時にエラー [#z79cc56a]
-2017/05/10(水)現在、Rails 5.0.2でrailtiesとminitestのagg...
-[[- Write aggregated_results directly to the IO object t...
-とりあえずtest_helper.rbに以下を追加すればごまかせる。
#pre{{
module Minitest
class SuppressedSummaryReporter < SummaryReporter
def aggregated_results(*)
super unless options[:output_inline]
end
end
end
}}
***kind_of?(Hash)の変換 [#edaa3bfd]
-ActionController::ParametersがHashを継承しなくなった。Ra...
kind_of?(Hash) #Rails 4まで
kind_of?(ActionController::Parameters) #Rails 5まで
終了行:
&tag(Rails/アップグレード/4.2から5.0);
*目次 [#l9a304dd]
#contents
*関連ページ [#he8e43a0]
*参考情報 [#ic168dd4]
*Rails 4.2からRails 5.0 [#kae9c16c]
**手順 [#s9cb922d]
-GemfileのRailsバージョンをRails.5.0系の最新版に書き換え...
bundle update
-設定ファイルの更新。古い設定ファイルを上書きしようとして...
bundle exec rails app:update
-IntelliJの場合Compare with Branchで比較する(Commitだと変...
-app/models/application_record.rbを作成
#pre{{
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
end
}}
-各モデルクラスが継承するようにする(必須ではない)。
#pre{{
class Book < ApplicationRecord
end
}}
**移行後のWarningつぶし [#ye6eeaa1]
-デバッグ実行 or テストを実行してWarningをつぶしていく
***MySQLの絵文字 [#ib17db7f]
-MySQLで絵文字を使っている場合はar_innodb_row_format.rbの...
***before_filter is deprecated [#o702369a]
-before_actionに書き換える。
***Rails Controller Testingのエラー [#oe8e550f]
-controllerのテストでassignを使っている場合以下のようなエ...
#pre{{
NoMethodError: assigns has been extracted to a gem. To co...
add `gem 'rails-controller-testing'` to your Gemf...
}}
-Gemfileにrails-controller-testingを追加する
#pre{{
group :test do
gem "rails-controller-testing"
end
}}
-.DEPRECATION WARNING: Using positional arguments in func...
-以下のようなエラー。
#pre{{
.DEPRECATION WARNING: Using positional arguments in funct...
in favor of keyword arguments, and will be removed in Rai...
Deprecated style:
get :show, { id: 1 }, nil, { notice: "This is a flash mes...
New keyword style:
get :show, params: { id: 1 }, flash: { notice: "This is a...
session: nil # Can safely be omitted.
}}
-指示通りにparamsやflashなどのキーワードを追加する。
#pre{{
post :create, params: {book: { author: @book.author...
get :show, params: {id: @book}
}}
***Mime::JSON to: Mime::Type[:JSON] [#t31298d2]
-[[Deprecated warning - Mime::JSON · Issue #789 · rbenv/r...
-Rails 5.0.x系の場合jbuilderの指定は以下がデフォルト
#pre{{
gem 'jbuilder', '~> 2.5'
}}
***take_paramsの書き換え [#r3d2681f]
-take_paramsで「DEPRECATION WARNING: Method update is dep...
-ApplicationController::ParametersがHashを継承しなくなる...
#pre{{
def take_params(*param_keys)
overwrites = param_keys.extract_options!
param_keys = default_take_param_keys if param_keys.bl...
params.to_unsafe_h.extract!(*param_keys).update(overw...
end
helper_method :take_params
}}
***Protected Attributesの廃止 [#h4997113]
-Rails 4では[[GitHub - rails/protected_attributes: Protec...
-CarrierWaveをStrong Parameter対応にするには、:icon、icon...
***XMLシリアライズ [#z495c8e8]
-RailsのActiveModel::Serializers::Xmlが外部に移転。to_xml...
gem 'activemodel-serializers-xml'
***ActiveRecord::Base.raise_in_transactional_callbacks= i...
-environment.rbの以下の行で発生
require File.expand_path('../application', __FILE__)
-実際はapplication.rbに含まれる以下の行を削除する。
config.active_record.raise_in_transactional_callbacks =...
***Using a dynamic :action segment in a route is deprecat...
-routes.rbから、以下のような部分を削除orコメントアウト
# get ':namespace:controller(/:action(/:id))(.:format)'
***Minitestの実行後レポート表示時にエラー [#z79cc56a]
-2017/05/10(水)現在、Rails 5.0.2でrailtiesとminitestのagg...
-[[- Write aggregated_results directly to the IO object t...
-とりあえずtest_helper.rbに以下を追加すればごまかせる。
#pre{{
module Minitest
class SuppressedSummaryReporter < SummaryReporter
def aggregated_results(*)
super unless options[:output_inline]
end
end
end
}}
***kind_of?(Hash)の変換 [#edaa3bfd]
-ActionController::ParametersがHashを継承しなくなった。Ra...
kind_of?(Hash) #Rails 4まで
kind_of?(ActionController::Parameters) #Rails 5まで
ページ名: