我想知道是否有方法(插件?)显示rails 3中给定对象的所有消息错误。例如,这里我的验证:
validates_presence_of :email, :message => "Your Email can't be blank"
validates_format_of :email, :with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i
将在视图中显示如下:
Your Email can't be blank
Email is invalid
如果我使用error_message_on(@ user,:email)我会收到第一条消息错误,所以 我的开始必须创建一个循环并提取相关的方法(例如@ user.email)这是正确的方法吗?
这几乎实现了它:
<ul>
<%= @user.errors.on(:email).each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
但它也会返回数组,我该如何管理呢?
Your Email can't be blank
is invalid
["Your Email can't be blank", "is invalid"]
谢谢!
答案 0 :(得分:1)
<ul>
<% @user.errors.on(:email).each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
并作为帮助者:
def display_all_error_messages(object, method)
list_items = object.errors[method].map { |msg| content_tag(:li, msg) }
content_tag(:ul, list_items.join.html_safe)
end