优化活动记录查询,省略相关记录上的nil字段

时间:2014-03-04 08:02:42

标签: ruby activerecord orm ruby-on-rails-4 rails-activerecord

我正在尝试从模型中选择所有记录,而不是在关联记录中包含nil字段的记录。到目前为止,我有这个:

User.where("id NOT IN (?)", User.all(:include => :profile, :conditions => {:profiles => {:first_name => nil, :last_name => nil}}))

我想知道是否有更直接或最佳的方式来做到这一点。

谢谢!

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

User.includes(:profile).where('profiles.first_name IS NOT?AND profiles.last_name IS NOT?',nil,nil)

更新:替换了!= IS NOT。 sql中不允许运算符!=。它应该现在正在运作。