如何缩小Rails中表格的结果?
我正在使用Rails 4.0.2和PostgreSQL,可以做
users = User.where(:flag1).where(:flag2 => nil)
但不是
users = User.where(:flag1).where(:flag2 => nil).where(:flag3 => nil)
获取
#<ActiveRecord::Relation []>
我错过了什么吗?
我尝试过Squeel,也可以这样做
users = User.where{(flag1) & (flag2 == nil)}
但不是
users = User.where{(flag1) & (flag2 == nil) & (flag3 == nil)}
产生
!! #<TypeError: Cannot visit Squeel::Nodes::Predicate>
有关如何使用和/或不使用Squeel执行此操作的任何想法?谢谢!
正常查询的问题是由flag2和flag3值为nil或false引起的。我试图将此与Squeel一起考虑。
我能做到
User.where{(flag1) & ((flag2.eq nil) | (flag2.eq false))}
但不是
User.where{(flag1) & ((flag2.eq nil) | (flag2.eq false)) & ((flag3.eq nil) | (flag3.eq false))}
返回
!! #<TypeError: Cannot visit Squeel::Nodes::Or>
答案 0 :(得分:0)
我现在正在做
User.where{(flag1)}.where{((flag2.eq nil) | (flag2.eq false))}.where{((flag3.eq nil) | (flag3.eq false))}
这似乎在Rails控制台中有效。