имена ключей переменных с использованием Grape API в Rails
Из документации винограда по проверке/принуждению все примеры, которые они предоставляют с хэшами и вложенными хэшами, похоже, предполагают, что я точно знаю имя каждого ключа внутри хеш-объекта, а также точное количество ключей, которые у меня будут для каждого хеш-объекта. . Кажется, существует множество способов настроить проверку значений и даже типов данных этих ключей, но нет ли способа динамически обрабатывать ключи?
Структура у меня выглядит примерно так
param_name = { randomSHA256Value: { 0: "строка 1", 1: "строка 2", 2: "строка 3" } }
Единственное, что я могу предсказать, это то, что у меня есть параметр с именемparam_name
и что это хэш-объект. Я не могу предсказать фактическое имя ключаrandomSHA256Value
и я не знаю, сколько ключей будет вложено в него.
1 ответ
Для тех, кто может столкнуться с этим в будущем, я смог получить желаемые результаты, используя:
params do
requires :param_name, type: Array[Hash]
end
Возможно, структуру Hash нужно где-то объявить, но я так не думаю.
Он принимает массив хеш-объектов и не требует явного именования ключей внутри хеша. Итак, в конечном итоге я смог сделать что-то вроде
[{ key_1: randomSHA256Value,
key_2: ["string 1", "string 2", "string 3"] }]
и как только данные были получены, я мог изменить их по мере необходимости