2014-03-04 121 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

現在應該解決問題,請參閱上面的更新。 –