将验证错误映射到不同的输入

时间:2016-07-13 23:34:13

标签: forms validation ruby-on-rails-4 paperclip simple-form

我正在使用Paperclip处理文件上传,但因为我正在处理非常大的文件,所以我将图像直接上传到S3,然后通过一组隐藏字段提交文件信息。

我有一个文件输入(名为:original_file_url),但这仅用于S3上传:我在文件上传完成时用上传中的必要数据填充一系列隐藏字段。这意味着回形针产生的验证错误以及我自己的验证错误都不会映射到我的文件输入:

"photo.image_content_type"=>["is invalid"], 
"photo.image"=>["is invalid", "can't be blank", "Width must be at least 2460px", "Height must be at least 1640px"]}

我使用简单的形式:

<%= photo_form.input :original_image_url, as: :file, label:false %>

在我的初始值设定项中定义了以下模板:

  config.wrappers :app, class: 'ControlGroup', error_class: 'is-error' do |b|
    b.use :html5
    b.use :placeholder
    b.optional :maxlength
    b.optional :pattern
    b.optional :min_max
    b.optional :readonly
    b.use :label_input
    b.use :error, wrap_with: { tag: :div, class: 'ControlGroup-inlineError' }
    b.use :hint,  wrap_with: { tag: :span, class: 'ControlGroup-hint' }
  end

有没有办法将这些错误映射到该输入,以便它们显示为内联错误?鉴于我已经有上面的模板工作正常并包含一个错误字段,我只想要一种传递错误信息的方式来显示。

1 个答案:

答案 0 :(得分:0)

是的,表单构建器有一个方法error,您可以指定您想要错误的属性:

photo_form.error :image_content_type
photo_form.error :image

文档here