PG 错误使用 rails where

PG error using rails where

我有一个简单的查询,例如

User.where('(zone_id IN (?) AND zone_type = "Org") OR (zone_id = ? AND zone_type ="Com")', [1,2,3], 10)

这让我很生气

PG::UndefinedColumn: ERROR:  column "Org" does not exist

我做错了什么?

更多Rails方式, 您不必使用 IN 运算符

User.where(zone_id: [1,3,5] AND zone_type:"org").or.where(zone_id: 10 AND zone_type: "com")

显然替换所有条件可以解决问题:

User.where('(zone_id IN (?) AND zone_type = "?") OR (zone_id = ? AND zone_type ="?")', [1,2,3], "Org", 10, "Com")

我建议遵循 solition,它更具可读性:

User.where(zone_id: [1,3,5] AND zone_type:"org").or.where(zone_id: 10 AND zone_type: "com")