【发布时间】:2018-01-11 15:34:39
【问题描述】:
让我的简单表单显示错误的唯一方法是通过
<% 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 表单。
将validates :social_profile, presence: true, associated: true 添加到用户模型可防止发生此错误,但不会向用户指示发生了什么。我能想到的最好的是原始代码,但似乎应该有更好的方法。
【问题讨论】:
标签: ruby-on-rails validation ruby-on-rails-5 simple-form