Как выбрать только часть json, хранящуюся в Postgres, с ActiveRecord
Скажи у меня есть модельUser
, который имеет поле типаjson
называетсяsettings
, Давайте предположим, что это поле выглядит примерно так:
{
color: 'red',
language: 'English',
subitems:
{
item1: true,
item2: 43,
item3: ['foo', 'bar', 'baz']
}
}
Если я сделаюUser.select(:settings)
Я получу все настройки для каждого пользователя. Но я хочу получить только языки для пользователя. Я попробовал оба:
User.select("settings -> 'language'")
а также
User.select("settings ->> 'language'")
но это просто возвращает пустые объекты:
[#<User:0x007f381fa92208 id: nil>,
...]
Это вообще возможно? Если да - могу ли я сделать это, используя толькоjson
или мне нужно переключиться наjsonb
?