【Rails】バリデーションのエラーメッセージを表示する

【Rails】バリデーションのエラーメッセージを表示する

Railsでバリデーションエラーが発生している場合、大体の場合でエラーメッセージを表示します。
メッセージはモデルのerrorsに格納されていて、いくつかの取得方法があります。

全てのエラーメッセージを取得

errors.messages

エラーメッセージをハッシュ形式で取得します。

@post.errors.messages
=> {:title=>["can't be blank"]}

errors.full_messages

全てのエラーメッセージを配列で取得します。

@post.errors.full_messages
=> ["Title can't be blank"]

複数のメッセージが格納されていることもあるので、全て表示するには each でループで回しましょう。

<% @post.errors.full_messages.each do |message| %>
  <%= message %>
<% end %>

個別のエラーメッセージを取得

errors.full_messages_for(symbol)

対象のシンボルのメッセージを配列で取得します。

@post.errors.full_messages_for(:title)
=> ["Title can't be blank"]

こちらも複数のメッセージが格納されていることもあるので、全て表示するには each でループで回しましょう。

<% @post.errors.full_messages_for(:title).each do |message| %>
  <%= message %>
<% end %>
五十川 洋平(Yohei Isokawa)

五十川 洋平(Yohei Isokawa)

フロントエンドエンジニア/面白法人カヤックなどのWeb制作会社に勤務したのち、故郷の新潟に戻り独立。JSフレームワークAngularやFirebase、Google Cloud Platformを使ったWebアプリ開発が得意。 また、Udemyのプログラミング解説の講師、writer.appの自主開発や上越TechMeetupの主催などを行っています。

プロフィール

©Copyright 2022 Yohei Isokawa All Rights Reserved.