Como selecionar apenas parte do json, armazenada no Postgres, com o ActiveRecord

Digamos que eu tenho um modeloUser, que tem um campo do tipojson chamadosettings. Vamos supor que esse campo se pareça mais ou menos com isso:

{
  color: 'red', 
  language: 'English', 
  subitems: 
    {
      item1: true, 
      item2: 43, 
      item3: ['foo', 'bar', 'baz']
    }
}

Se eu fizerUser.select(:settings) Vou receber todas as configurações para cada usuário. Mas quero obter apenas os idiomas para um usuário. Eu tentei os dois:

User.select("settings -> 'language'")

e

User.select("settings ->> 'language'")

mas isso apenas retorna objetos vazios:

[#<User:0x007f381fa92208 id: nil>,
...]

Tudo isso é possível? Se sim - posso fazê-lo usando apenasjson ou preciso mudar parajsonb?

questionAnswers(1)

yourAnswerToTheQuestion