我想查找字段不为真的所有记录。适用于此的AR语法是:
Dog.where(:stray => [false, nil])
是否有一种不那么冗长的查询方式,而不是真的'?在任何地方都不得不满足这个mysql的细微差别。
答案 0 :(得分:7)
命名范围怎么样?
scope :not_stray, where("stray IS NULL OR stray = false")
然后使用:
Dog.not_stray
答案 1 :(得分:6)
我认为你可以写Dog.where(Dog.arel_table[:stray].not_eq(true))
。
作为旁注,我建议您为数据库中的stray
列设置默认值,或者至少需要一个值。这样你就不必进行这种解决方法了。