Dies:
#<ActiveRecord::Relation [#<Model id: 1, Model id: 2 ...>]
ist das Ergebnis des Aufrufs von inspect
auf die Abfrage und inspect
zeigt nur Spalten an, die das Modell darüber kennt. Das Modell fragt die Tabelle während des Starts nach den Spalten ab, sodass es nur die Spalten kennt, die sich tatsächlich in der Tabelle befinden.
ActiveRecord erstellt mithilfe von method_missing
spontan Zugriffsmethoden für Spalten so kann es Methodendinge in einer Abfrage erstellen, die keine Spalten in der eigentlichen Tabelle sind.
Also Ihre data
ist da, müssen Sie nur namentlich danach fragen, zum Beispiel:
Model.select(:id, "json_field -> 'data' as data").map(&:data)
gibt Ihnen die data
Werte.