开拓者改革宝石,如何处理这种输入验证



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

我们面临的问题之一是我们以这种格式接受输入:

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值未提前知道。

改革目前不允许动态属性,实际上,它没有计划,因为改革应该是特定于UI的形式对象。

解决方案是将您的输入预先介绍到劳拉所建议的东西中。然后,您可以为每个字段具有嵌套属性。

collection :records do
  property :id # manually parsed
  property :name
end

最新更新