В вашем примере, если вы хотите проверить группы модераторов и администраторов, у вас должно быть:
ключ: group_name
значение: moderators,admins
Технические детали для помощи, не обращайте на меня внимания.
Я попытался разобраться, изучив код, и думаю, что здесь есть проблема:
Параметры преобразуются перед вызовом run_query.
Допустим, у вас есть исходное значение: [{"key":"group_names","value":"admins,moderators"}]
Преобразованное значение будет таким: {{"key"=>"group_names", "value"=>"admins,moderators"}=>nil}
Однако cast_params, похоже, ожидает {"group_names"=>"admins,moderators"}.
Я попробовал протестировать это простое изменение, и параметры заработали.
def self.params_to_hash(query_params)
params = JSON.parse(query_params)
params_hash = {}
params.each do |param|
key = param["key"]
value = param["value"]
params_hash[key] = value
end
params_hash
end
Это просто фантастическое спелеологическое приключение, @Arkshine!
Я сейчас разбираюсь с этим. Когда я читаю исходный код, у меня складывается впечатление, что он ожидает, что параметры будут массивом массивов, поэтому я немного опасаюсь просто выбросить существующий код. Постараюсь понять, когда это может произойти.
Здесь действительно была ошибка, и во многом благодаря расследованию @Arkshine её удалось относительно легко исправить:
Этот запрос уже принят в основную ветку, поэтому после развёртывания вашего сайта проблема будет решена, @ganncamp.
Если я правильно понял, вы хотите автоматизацию, которая обеспечивает прямое соответствие между группой и её отчётом? (То есть group_a получает отчёт с данными group_a и т. д.)
На данный момент нет связи между списком получателей и параметрами отчёта, поэтому для реализации такой логики потребуется настроить отдельную автоматизацию для каждой группы. В этом случае, возможно, стоит изменить параметр на group_id.
Это действительно кажется удобным, особенно для сайтов с большим количеством групп. Я запишу этот запрос, но не могу сказать, когда мы сможем его реализовать.