【问题标题】:Rails 5 Simple Form does not display errors [duplicate]Rails 5 Simple Form不显示错误[重复]
【发布时间】: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


    【解决方案1】:

    @Brad Werth 将我链接到 this SO post,这帮助我构建了以下答案:

    <%= f.object.errors.full_messages.join(", ") if f.object.errors.any? %>
    

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

    【讨论】:

      猜你喜欢
      • 2018-08-19
      • 2015-06-09
      • 2017-07-03
      • 1970-01-01
      • 2014-11-19
      • 1970-01-01
      • 2018-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多