LoginSignup
2
1

【Rails7】renderメソッド注意点【エラーハンドリング】

Posted at

Railsガイド
https://railsguides.jp/v7.0/layouts_and_rendering.html

結論から

エラーハンドリングをしたい場合
render :edit, status: :unprocessable_entity
この後半部分が必要です。

※Rails7で仕様が変わっています。
 以前はデフォルトでバリデーションエラーが発生した場合、自動的にこのステータスコードが設定されていました。
 よって:unprocessable_entityを明示的に指定する必要はありませんでした。

status: :unprocessable_entityとは

HTTPステータスコードの一つで、422 Unprocessable Entityを表します。

このステータスコードは、リクエストがサーバーに到達したが、サーバーがリクエストを理解できない場合に使用されます。

一般的に、クライアントが送信したデータが不正な場合や、バリデーションエラーが発生した場合にこのステータスコードが利用されます。

記載しないとどうなるのか

バリデーションエラーが発生しても、ステータスコードが正常なもの(例: 200 OK)と認識されます。

あえて設定しない限り、正常なステータスコードにエラーメッセージは含まれません。(当たり前ですね)
よってエラーメッセージを表示させることができません。

2
1
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
2
1