<DAY110> エラーハンドリングについて
学習状況
●学習日数 110日
●学習時間(本日)10時間
●累計学習時間 527.5時間
●一日あたりの平均学習時間 4.79時間
エラーハンドリングとは?
エラー発生時に、エラー発生原因を特定しやすくする。
エラー発生時にエラー発生で処理を止めるのでなく、
エラー発生時を想定し処理を記述する事で、ユーザーの使い勝手を高める
エラーをキャッチしたい範囲を決める。
エラーを取得したい範囲を
'begin~~~end'にて囲む
例えば、
class ItemsController < ApplicationController begin def create create(params_create) end end end private params.require(:item).permit(:name)
エラー時に処理したい記述をrescue~~に記述する。
class ItemsController < ApplicationController begin def create create(params_create) rescue ActiveRecord :: RecordInvalid => e @item = e.record render :action => 'new' end end
DRYに記述するには?
createだけでなく、update,
destroyにも必要で同じ処理を記入するとDRYでは無くなります。
そのため、コントローラー全体に範囲を適用する'rescue from'を使用します。
class ItemsController < AplicationController rescue from ActiveRecord::RecordInvalia do |exseption| end