Ruby on rails Rails 5简单表单不显示错误
我能让我的简单表单显示错误的唯一方法是通过Ruby on rails Rails 5简单表单不显示错误,ruby-on-rails,validation,ruby-on-rails-5,simple-form,Ruby On Rails,Validation,Ruby On Rails 5,Simple Form,我能让我的简单表单显示错误的唯一方法是通过 <% errors = f.object.errors.messages.collect { |k,v| "#{k}: #{v}" if v.length > 0 }.join("\n")%> <%= f.error_notification message: "Errors: #{errors}" %> 0}.join(“\n”)%%> 这似乎太复杂了 场景: 用户表和嵌套的、多态的社交网站链接表(faceb
<% errors = f.object.errors.messages.collect { |k,v| "#{k}: #{v}" if v.length > 0 }.join("\n")%>
<%= f.error_notification message: "Errors: #{errors}" %>
0}.join(“\n”)%%>
这似乎太复杂了
场景:
用户表和嵌套的、多态的社交网站链接表(facebook、twitter等)
如果用户在创建新帐户时未填写任何嵌套表单,则配置文件输入/参数为空字符串,并且保存良好
但是,如果用户删除所有配置文件链接的输入字段,则不会创建与social_配置文件表的关联。因此,如果用户稍后尝试编辑其帐户,则不会显示嵌套的social_profile表单
向用户模型中添加可验证:social_profile,presence:true,associated:true
,从而防止发生此错误,但没有向用户显示发生了什么。我能想到的最好的方法是原始代码,但似乎应该有更好的方法。@Brad Werth将我与之链接,帮助我构建了以下答案:
<%= f.object.errors.full_messages.join(", ") if f.object.errors.any? %>
从表单中获取错误对象,获取“完整消息”(即“描述不能为空”),并用逗号将它们连接在一起