【问题标题】:Bind error message on another attribute在另一个属性上绑定错误消息
【发布时间】:2016-09-29 13:58:12
【问题描述】:

我在模型中有以下验证规则

validates :csv_fingerprint, uniqueness: { message: "CSV was already uploaded." }

在表单视图(simple_form)中,以下代码生成文件上传字段:

= f.input :csv, as: :file

验证有效,但上传字段中未显示错误消息。我认为,原因是验证是针对 :csv_fingerprint 的,而表单字段是 :csv

如何告诉验证规则,消息应该显示在 :csv 字段中?

【问题讨论】:

    标签: ruby-on-rails paperclip simple-form


    【解决方案1】:

    你可以使用f.error:

    = f.input :csv, as: :file
    = f.error :csv_fingerprint
    

    你也可以像这样检查属性的错误:

    errors_for(@model, :attribute)
    

    然后您可以遍历这些并显示它们。

    获取对象错误的另一种方法:@model.errors.on(:attribute)

    【讨论】:

    • 谢谢。所以验证器中没有选项来指定消息属性。你必须进入视野。
    • @Christian 这是个问题吗?因为我不确定我是否可以回答它:)
    • @Christian 模型的验证器通常在数据库列上进行操作。显示验证错误的方式的责任在于视图层。
    • 你是对的。但是视图(Twitter Bootstrap)变得相当复杂,如果你想以红色显示错误消息和文件上传字段,如果 :csv_fingerprint 有错误。另一种选择是自定义验证方法,因为您可以将错误设置为特定字段:errors.add(:csv, "already upload")
    猜你喜欢
    • 2015-01-19
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    相关资源
    最近更新 更多