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