LoginSignup
0
0

【Rails】バリデーションエラーが表示されない場合の解決方法

Posted at

概要

Railsで後述するバージョンで「バリデーションエラーメッセージ」が表示されなかったので、解決法とその理由を解説します。

バージョン

Ruby:3.1.4p223
Rails :7.0.8.1

コード

Ruby
status: :unprocessable_entity

記述する箇所:
screenshot_02.png


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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0