5

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

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

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

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

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

4

1 回答 1

9

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

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

这适用于在没有电子邮件密钥的情况下获取用户:

User.where("(details->'email') is null")
于 2015-08-05T16:17:16.317 回答