如何使用Squeel编写SQL查询?
SELECT * FROM documents where (NOT document.deleted OR document.deleted IS NULL)我试过了:
Document.where { (-deleted) | (deleted == nil) }但是会出现这个错误:
NoMethodError: undefined method `|' for deleted.-@:Squeel::Nodes::KeyPath发布于 2013-02-18 20:41:34
注意,ActiveRecord将布尔值作为字符串标志存储在数据库中,这一点非常重要。因此,在您提到的情况下,document.deleted等于'f',这是一个真实值。这就是为什么不能简单地使用NOT运算符。
也许你正在寻找的是:
Document.where { deleted.eq(false) | deleted.eq(nil) }干杯
发布于 2013-02-18 20:40:04
NOT将反转返回的集合,因此您必须定义要比较的内容。
(-deleted) #there is nothing to reverse根据你的评论,我认为你指的是deleted not equal true,所以:
Document.where { -(deleted == true) | (deleted == nil) }然而,true的反转是false,对吗?所以,你可以说:
Document.where { (deleted == false) | (deleted == nil) }https://stackoverflow.com/questions/14935812
复制相似问题