En tu ejemplo, digamos que quieres comprobar los grupos de moderadores y administradores, deberías tener:
clave: group_name
valor: moderators,admins
Cosas técnicas para ayudar, no me tengas en cuenta.
Intenté entender mirando el código y creo que hay un problema aquí:
Los parámetros se transforman antes de que se llame a run_query.
Digamos que tienes este valor original: [{"key":"group_names","value":"admins,moderators"}]
El valor transformado será: [{"key"=>"group_names", "value"=>"admins,moderators"}=>nil]
Sin embargo, cast_params parece esperar {"group_names"=>"admins,moderators"}
Intenté probar este cambio ingenuo y los parámetros funcionaron.
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