如何使用 JSON function/operator 查询其中键不为空或为空?

How do I query with JSON function/operator where key is either not null or is null?

我正在寻找以下 sql 代码的活动记录版本:

select *
from users
where (details->'email') is not null

假设我的用户模型有一个名为 details 的 json 字段,一些记录将有一个电子邮件键值,而有些则没有。我正在尝试查询具有电子邮件、键值的用户记录。我尝试使用以下 User.where("details->'email' is not null"),但我的终端打印出这个:

PG::UndefinedFunction: ERROR:  operator does not exist: json -> boolean

我发现了这个 SO post,它试图做相反的查询,但想法是一样的。如果有人可以向我展示查询 json 键存在或不存在的 Active Record 版本,我将不胜感激。

这适用于让用户使用电子邮件密钥:

User.where("(details->'email') is not null")

这适用于让没有电子邮件密钥的用户:

User.where("(details->'email') is null")