お世話になっております。
railsのアクションにパラメーターが渡ってきた際に、パラメーターが存在しなかった場合や、値がnilだった場合に特定の動作をしたいと思っています。
通常、パラメーターに関してはmodelのvalidで不正な値は検知することかと思いますが、これをコントローラーでも行いたいと考えています。。
rails4ではverifyなるメソッドが存在しているようで、不正なparameterの場合には例外やredirectをするような処理がかけるようなんですが、rails5では該当のメソッドを見つけることができませんでした。
http://railsdoc.com/references/verify
rails5の場合、どのようにして実装するのが一般的でしょうか?
(strong_parameterなどで制御が出来そうな感じがしますが、方法がわかりませんでした
よろしくお願い致します。
controller def create //下記のモデルのバリデーションの前に、controller層でパラメーターの検証をしたい。 //例えば、必須項目である:cdがパラメーターにない場合、nilだった場合、:cdを元にレコードを取得して、レコードがなかった場合などにはredirectやデフォルトの値を入れたりしたい。 if params[:cd].brank? then redirect_to index if Model2.where(cd: params[:cd]).exists? then redirect_to index //上記のパラメーターのチェックが通ってから、モデルのvalidで検証してvalidationをする。 unless Model(params).create! redirect_to index_path end end
あなたの回答
tips
プレビュー