Ceci :
#<ActiveRecord::Relation [#<Model id: 1, Model id: 2 ...>]
est le résultat de l'appel de inspect
sur la requête et inspect
n'affichera que les colonnes que le modèle connaît. Le modèle interrogera la table pour les colonnes au démarrage afin de ne connaître que les colonnes qui se trouvent réellement dans la table.
ActiveRecord crée des méthodes d'accès aux colonnes à la volée en utilisant method_missing
afin qu'il puisse créer des éléments de méthodes dans une requête qui ne sont pas des colonnes dans la table réelle.
Donc, vos data
est là, il vous suffit de le demander par son nom, par exemple :
Model.select(:id, "json_field -> 'data' as data").map(&:data)
vous donnera les data
valeurs.