はじめに
プログラミング初心者ですので、、温かく見守って頂けると幸いです。
何か間違っていたらコメントお願いします。
エラーメッセージが出てこない
ActiveHashを使用した入力フォームの初期値に上記のような初期値を設定していましたが、そうするとエラーメッセージが出ないという状況に陥りました。
しかも、初期値ではエラーメッセージ出ないのに、普通に項目を選択して保存しようとすると、"Category can't be blank"というエラーが、、、(選択してるのに、、、)
解決
原因ははっきりしていませんが、修正した箇所としては、
idを0~から始めるのではなく1~から始めた。(上記の画像は修正後)
ビューのnew.html.erbの
<%= f.collection_select(:category_id, Category.all, :id, :name, {include_blank: true}, {class:"select-box", id:"item-category"}) %>
を
<%= f.collection_select(:category_id, Category.all, :id, :name, {}, {class:"select-box", id:"item-category"}) %>
に修正({include_blank: true}の部分を削除しました。)
これでエラーメッセージが正常に出るようになりました。
ちなみに
こちらの status: :unprocessable_entity の書き忘れでエラーメッセージが出ない場合もあるとのこと。
自分はなんとなくで記載していたので、初めて知りました。
追記
後から原因がわかりました。
バリデーションでid:1を選択した場合は保存ができないように設定していました。
だから、idが0だと保存されてしまうし、きちんとカテゴリーを選択していてもエラーメッセージが出てしまっていたんですね。
これにて解決。