Consulta en el campo de matriz JSON de Postgres en Rails

Estoy tratando de consultar un cierto valor en una base de datos Postgres. Tengo un campo llamadogroups en elusers tabla que se puede representar de cualquiera de estas formas:

1)

groups: {"data"=>[{"serie"=>5, "year"=>3, "specialization"=>"Matematica", "management_id"=>1, "group_number"=>2}, {"serie"=>5, "year"=>3, "specialization"=>"Matematica", "management_id"=>1, "group_number"=>2}]}

2)

groups: [{"serie"=>5, "year"=>3, "specialization"=>"Matematica", "management_id"=>1, "group_number"=>2}, {"serie"=>5, "year"=>3, "specialization"=>"Matematica", "management_id"=>1, "group_number"=>2}]

Estoy bien con cualquiera de estas representaciones. Sin embargo, parece que no puedo encontrar la forma de obtener todos los usuarios que están en la serie 5, digamos. Intenté múltiples consultas en la línea de:

@users = User.where("groups ->> 'data' @>  ?", {serie: 5})
@users = User.where("groups -> 'data' @>  '?'", {serie: 5})
@users = User.where("groups ->> 'data' ->> 'serie' = ?", 5)

Y muchos otros intentos, algunos más estúpidos que otros (ver arriba). ¿Cómo lo haría?

He podido determinar que:

select groups -> 'data' ->> 'serie' from users;  
ERROR: cannot extract field from a non-object.

Sin embargo, la siguiente consulta funciona:

select json_array_elements(groups -> 'data') ->> 'serie' from users;

Creo que no estoy entregando correctamente los datos en la columna. El hash que estoy proporcionando para crear es:

pry(#<Overrides::RegistrationsController>)> @response['data']['user']
=> {"last_name"=>"Doe1",
 "first_name"=>"John1",
 "email"=>"[email protected]",
 "groups"=>
  {"data"=>
    [{"serie"=>5, "year"=>3, "specialization"=>"Matematica", "management_id"=>1, "group_number"=>2}, {"serie"=>5, "year"=>3, "specialization"=>"Matematica", "management_id"=>1, "group_number"=>2}]}}

Antes de guardar el recurso se ve así:

pry(#<Overrides::RegistrationsController>)> @resource
=> #<User id: nil, provider: "email", uid: "", first_name: "John1", last_name: "Doe1", email: "[email protected]", role: "Student", created_at: nil, updated_at: nil, groups: {"data"=>[{"serie"=>5, "year"=>3, "specialization"=>"Matematica", "management_id"=>1, "group_number"=>2}, {"serie"=>5, "year"=>3, "specialization"=>"Matematica", "management_id"=>1, "group_number"=>2}]}>

Respuestas a la pregunta(1)

Su respuesta a la pregunta