имена ключей переменных с использованием 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"] }]

и как только данные были получены, я мог изменить их по мере необходимости

Другие вопросы по тегам