8

我想查找字段不正确的所有记录。用于此的 AR 语法是:

Dog.where(:stray => [false, nil])

是否有一种不那么冗长的方式来查询“不正确”?必须在任何地方都满足这种 mysql 细微差别真的很糟糕。

4

2 回答 2

7

命名范围怎么样?

scope :not_stray, where("stray IS NULL OR stray = false")

然后使用:

Dog.not_stray

于 2012-07-17T13:44:15.380 回答
6

我觉得你可以写Dog.where(Dog.arel_table[:stray].not_eq(true))

作为旁注,我建议您为stray数据库中的列设置一个默认值,或者至少需要一个值。这样你就不必做这个解决方法。

于 2012-07-17T13:39:17.787 回答