Первоначальный камень реформы, как справиться с этим типом проверки ввода?
Мы смотрим на использование камня реформ для проверки входных данных.
Одна из проблем, с которыми мы сталкиваемся, заключается в том, что мы принимаем данные в следующем формате:
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-записи не известны заранее.
1 ответ
Реформа в настоящее время не допускает динамических свойств, и фактически она не планируется, поскольку предполагается, что Reform является объектом формы, специфичным для пользовательского интерфейса.
Решение состоит в том, чтобы предварительно проанализировать ваш вклад в то, что предлагает Лора. Затем вы можете иметь вложенные свойства для каждого поля.
collection :records do
property :id # manually parsed
property :name
end