Rails的5个简单的形式不显示错误
问题描述:
我可以让我简单的形式来显示错误是通过Rails的5个简单的形式不显示错误
<% errors = f.object.errors.messages.collect { |k,v| "#{k}: #{v}" if v.length > 0 }.join("\n")%>
<%= f.error_notification message: "Errors: #{errors}" %>
这似乎太复杂的唯一途径。
场景:
用户表和嵌套,social_profile链路(Facebook,Twitter的,等等)的多态表。
如果用户在创建新帐户时没有填写任何嵌套表单,则配置文件输入/参数是空字符串,并且可以很好地保存。
但是,如果用户删除了所有配置文件链接的输入字段,则不会创建与social_profile表的关联。因此,如果用户稍后尝试编辑其帐户,则不会显示嵌套的social_profile表单。
将添加到用户的模型可防止发生此错误,但没有指示给用户发生了什么。我能想到的最好的是原始代码,但似乎应该有更好的方法。
答
@Brad韦斯联系我this SO post这让我构建了以下的答案:
<%= f.object.errors.full_messages.join(", ") if f.object.errors.any? %>
抓斗从形式error'ed对象,获取“full_messages”(即“说明不能为空”)并用逗号将它们连接在一起。