エラーメッセージ設定時のエラー

・エラー内容

 オリジナルアプリでモデルへのデータ登録時、登録するカラム(プルダウン形式で、id番号が0のままだと登録出来ないバリデーションを設定)に対して、部分テンプレートのエラーメッセージを設定したところ、以下のエラーが出た。

f:id:Fujisan3776:20201120115136p:plain

 

・原因

 コントローラーのcreateアクションにおいて、保存処理後はshowアクションでシミュレーション結果を確認する画面に遷移する設定になっていた為。この状態ではバリデーションに反していても(データがテーブルに保存されていなくても)showアクションに飛ばされてしまい、レコードが存在しないのでid=nilとなりエラーとなってしまった。

f:id:Fujisan3776:20201120115151p:plain

 

・対処法

 保存されない=バリデーションが機能(ActiveHashのidが0では保存出来ない)した場合は、newアクション(シミュレーション作成ページ)に戻すようにcreateアクションのコードを変更した。これによりシミュレーション作成ページで「○○ must be blank」と言ったエラーメッセージで入力の不備を指摘出来るようになる。

f:id:Fujisan3776:20201120115201p:plain