2010-09-20 69 views
0

這是我詢問的前一個問題的後續。我無法使查詢工作具有嵌套模型的各種條件。積極記錄嵌套條件

user has_one avatar 
user has_one profile 
avatar belongs_to user 
profile belongs_to user 

,我居然能得到這個工作...

Avatar.find(:all, :include => {:user => :profile}, :conditions => {:users => {:profiles => {:description => 'foo'}}}) 

但是我希望它返回一個化身,如果profile.description是NOT NULL。

Avatar.find(:all, :include => {:user => :profile}, :conditions => {:users => {:profiles => "profiles.description IS NOT NULL"}}) 

因此,當我更改查詢遵循SQL語法,而不是railsesque語法,我得到一個錯誤「沒有這樣的列user.profiles」

它似乎沒有不管我用什麼語句「profiles.description不是NULL」,錯誤是一樣的。它必須是具有這種結構的其他東西。

回答

1

試試這個:

Avatar.all(:include => {:user => :profile}, 
    :conditions => ["profiles.description IS NOT NULL"]) 

你必須使用的條件數組這樣的質疑。