Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 5简单表单不显示错误_Ruby On Rails_Validation_Ruby On Rails 5_Simple Form - Fatal编程技术网

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? %>

从表单中获取错误对象,获取“完整消息”(即“描述不能为空”),并用逗号将它们连接在一起