显示其字段旁边的验证错误

时间:2012-12-19 10:17:16

标签: ruby-on-rails ruby ruby-on-rails-3

有没有办法在表单页面顶部显示错误,但在字段旁边显示错误?

5 个答案:

答案 0 :(得分:8)

<强>初始化/ my_custom_error_messages.rb

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
  errors = Array(instance.error_message).join(',')
  %(#{html_tag}<span class="validation-error">&nbsp;#{errors}</span>).html_safe
end

<强>更新

没有标签

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
  errors = Array(instance.error_message).join(',')

  if html_tag =~ /^<label/
    html_tag
  else
    %(#{html_tag}<span class="validation-error">&nbsp;#{errors}</span>).html_safe
  end

end

参考:rails guide

答案 1 :(得分:1)

您可以使用simple_form gem来显示字段

的验证错误
   <%= simple_form_for @user do |f| %>
       <%= f.input :username %>
       <%= f.input :password %>
       <%= f.button :submit %>
   <% end %>

如果您想在表单顶部显示验证错误,请使用

    object.error_messages

表单标记

答案 2 :(得分:1)

这曾经是Rails的一部分,现在它可以在gem中使用:

https://github.com/joelmoss/dynamic_form

它允许您轻松显示表单构建器对象的任何特定属性的错误,例如:

<%= f.text_field :foo %>
<%= f.error_message_on :foo %>

答案 3 :(得分:0)

由于布局顶部div中的@model.errors次迭代,错误会显示在表单的顶部。如果您移动此代码以检查每个字段上的哈希值上的错误,则可以完成所需的操作。

答案 4 :(得分:0)

<td class="error"><%=@user.errors[:firstname].join(",") %></td>