Если вы хотите разреженную ActiveRecord модель экземпляра для хранения данных (а не примитивов в массиве), вы просто используете select
:
model = Model.select("data -> 'special_date' as special_date'").first
model.id #=> nil
model.special_date = #=> "Wed, 23 Mar 2016 11:20:20 -0700"
Если вы хотите извлечь всю запись, а также особенности часть данных внутри jsonb
колонок, вы можете цепи на select
:
model = Model.select('*').select("data -> 'special_date' as special_date").first
model.id #=> 42
model.special_date #=> "Wed, 23 Mar 2016 11:20:20 -0700"
Если не нужен экземпляр ActiveRecord вообще, просто использовать потроха:
Model.pluck("data -> 'special_date' as special_date")
Я не хочу возвращать всю запись. Я просто хочу дублировать функциональность Model.select (: field), но нацелить его на подкомпонент jsonb-поля. – Carpela