ActiveRecord:查找列为nil或空数组的位置

时间:2018-06-08 04:16:45

标签: ruby-on-rails ruby postgresql activerecord ruby-on-rails-5

我在postgres中有一个数组列,我想查找此列为nil[]的所有记录。我可以搜索一个或另一个罚款,但尝试两个都失败。

这就是我的尝试

Model.where(column: [nil, []])

但是我收到了错误

ActiveRecord::StatementInvalid (PG::InvalidTextRepresentation: ERROR:  malformed array literal: "{NULL,{}}")
DETAIL:  Unexpected "{" character.

2 个答案:

答案 0 :(得分:3)

这对我有用

Model.where('column IS NULL OR column = ?', '{}')

答案 1 :(得分:-1)

Model.where("column = ? OR column = ?", nil, [])

这将执行SQL查询

SELECT "models".* FROM "models" WHERE (column = NULL OR column = NULL)

但你需要只能通过

来做到这一点
Model.where("column = ?", nil)