esto:
#<ActiveRecord::Relation [#<Model id: 1, Model id: 2 ...>]
es el resultado de llamar a inspect
en la consulta e inspect
solo mostrará columnas que el modelo conoce. El modelo consultará las columnas de la tabla durante el inicio, por lo que solo conocerá las columnas que realmente están en la tabla.
ActiveRecord crea métodos de acceso a columnas sobre la marcha usando method_missing
por lo que puede crear elementos de métodos en una consulta que no son columnas en la tabla real.
Entonces tus data
está ahí, solo tienes que pedirlo por su nombre, por ejemplo:
Model.select(:id, "json_field -> 'data' as data").map(&:data)
le dará los data
valores.