有没有办法在表单页面顶部显示错误,但在字段旁边显示错误?
答案 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"> #{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"> #{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>