开拓者改造宝石,如何处理这种类型的输入验证?

问题描述 投票:0回答:1

我们正在考虑使用改革宝石来验证输入。

我们面临的一个问题是我们接受以下格式的输入:

params = {
  records: {
    "record-id-23423424": {
      name:       'Joe Smith'
    }
    "record-id-43234233": {
      name:       'Jane Doe'
    }
    "record-id-345234555": {
      name:       'Fox trot'
    }
    "record-id-34234234": {
      name:       'Alex'
    }
  }
}

所以,如果我们要创建改革班

class RecordForm < Reform::Form
  property :records
  validates :records, presence: true

  # ?????????
end

我们如何验证记录的内容以确保每个记录的名称?记录id值未提前知道。

ruby-on-rails ruby validation reform trailblazer
1个回答
0
投票

改革目前不允许动态属性,实际上,由于改革应该是一个特定于UI的表单对象,因此它没有计划。

解决方案是将您的输入预先解析为what Laura suggests。然后,您可以为每个字段设置嵌套属性。

collection :records do
  property :id # manually parsed
  property :name
end
© www.soinside.com 2019 - 2024. All rights reserved.