【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 %>
バリデーションのエラーメッセージを表示する