我有一个模型,其中包含电子邮件作为其属性之一。它有以下验证:
validates :email, presence: true, length: { maximum: 50 }, format: { with: VALID_EMAIL_REGEX }
当用户使用空的空电子邮件提交表单时,我收到以下2个错误:
如何在这种情况下仅显示与字段相关的第一条错误消息?
我正在通过执行以下操作检索与对象关联的错误消息:
@object.errors.full_messages
答案 0 :(得分:3)
您可以通过以下方式轻松完成此操作:
<%= @object.errors.full_messages.first if @object.errors.any? %>
只需替换您的对象实例即可。如果你只想使用一个字段,那就有这个方法
http://api.rubyonrails.org/classes/ActiveModel/Errors.html#method-i-full_messages_for:
object.errors.full_messages_for(:email)
这将为您提供单个字段的特定错误
编辑:
如果你有很多字段:
<% @object.errors.each do |attr, msg| %>
<%= "#{attr} #{msg}" if @object.errors[attr].first == msg %>
<% end %>