概要
Railsで後述するバージョンで「バリデーションエラーメッセージ」が表示されなかったので、解決法とその理由を解説します。
バージョン
Ruby:3.1.4p223
Rails :7.0.8.1
コード
Ruby
status: :unprocessable_entity
status: :unprocessable_entity の役割
ステータスコード422へレンダリングさせるためでバリデーションエラーの際に返す
コードです。
※ステータスコードとはHTTPレスポンス時の処理結果を3桁の番号で表現すること。
コードを書かなかった場合:
Railsはデフォルトでリクエスト成功を返すので、バリデーションエラーがあっても、HTTPレスポンスでは何の問題も無かったと判断されます。
コードを書いた場合:
status: :unprocessable_entity
を指定した場合、ステータスコード422を返します。
要するにバリデーションエラーメッセージをユーザーに表示させます。
ステータスコード422の説明【mdn】
https://developer.mozilla.org/ja/docs/Web/HTTP/Status/422
Railsガイド
https://railsguides.jp/v7.0/layouts_and_rendering.html