To:
#<ActiveRecord::Relation [#<Model id: 1, Model id: 2 ...>]
jest wynikiem wywołania inspect
w zapytaniu i inspect
wyświetli tylko kolumny, o których wie model. Model podczas uruchamiania zapyta tabelę o kolumny, dzięki czemu będzie wiedział tylko o kolumnach, które faktycznie znajdują się w tabeli.
ActiveRecord tworzy metody akcesorów kolumn w locie za pomocą method_missing
więc może tworzyć metody rzeczy w zapytaniu, które nie są kolumnami w rzeczywistej tabeli.
Więc Twoje data
jest tam, wystarczy zapytać o to imię, na przykład:
Model.select(:id, "json_field -> 'data' as data").map(&:data)
da ci data
wartości.