Как написать запрос по поиску записей с исключенным json-значением и несуществующим json-ключом одновременно?

У меня есть таблица students с json колонкой с названием json. В этой колонке есть разные ключи. Мне нужно вытянуть записи, у которых нет конкретного значения Fail в ключе rating и одновременно мне нужны записи, где json ключ rating не существует. Как это возможно реализовать?

# Объекты

json: { rating: 'Pass' }
json: { grade: 'A' }
json: { rating: 'Fail' }

В общем, мне нужно исключить из результата записи с rating: 'Fail' и вернуть все остальные записи, включая те, у которых json-ключ rating не существует.

Результат запроса должен быть следующим:

json: { rating: 'Pass' }
json: { grade: 'A' }

Спасибо заранее!


Ответы (2 шт):

Автор решения: Василиса

Придётся всё же вспомнить чистый sql

Student.where("json ->> 'rating' != 'Fail' OR json ->> 'rating' IS NULL")
→ Ссылка