我正在尝试为我的Contradiction模型构建一个范围,其中evaluation_parameters
属性仅包含非NULL值。
我有记录,此属性完全为空{}
或其中一个值为{123, NULL}
,我希望在结果中没有这些值。
这是我的迁移:
add_column :contradictions, :evaluation_parameters, :integer, array: true, default: []
我已经尝试过以下查询,该查询仅返回带有空数组的记录
Contradiction.all.where.not("NULL = ANY (evaluation_parameters)")
有关如何做到这一点的任何建议? 谢谢:))
答案 0 :(得分:0)
首先:
evaluation_parameters
应该是:text
,而不是:integer
。
您正在寻找的查询是:
Contradiction.where("evaluation_parameters = '{}'")
这将获取所有具有evaluate_parameters等于空数组的矛盾。