2014-03-04 117 views
-1

我试图从模型中选择除了关联记录中有零个字段的记录以外的所有记录。到目前为止,我有这个:优化活动记录查询忽略关联记录上的无字段

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

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

谢谢!

回答

1

像这样的东西应该工作:

User.includes(:配置文件)。凡( '?profiles.first_name是不是和profiles.last_name不是',零,零)

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

+0

这似乎并不奏效。没有记录返回这个查询,但我得到了一些我发布的。不知道为什么。似乎它应该工作。 – errata

+0

现在应该解决问题,请参阅上面的更新。 –