2012-01-22 16 views

回答

18

這是正確的做法。爲了找車,其發動機爲nil,例如,使用:

# Cars that have a _nil_ engine. 
Car.where(:engine => nil) 

如果你想尋找一個字段的沒有(而不是一個被設置爲nil),使用$exists謂詞:

# Cars that lack an engine entirely. 
Car.where(:engine.exists => false) 

注意設置字段foonil,缺乏一個名爲foo場是兩回事。

+1

另請注意,如果:engine是「[a,b,c,nil]」形式的數組,則where子句「:engine => nil」將與這些行匹配。 –

+0

對於我來說,無論':engine'是否存在或是否爲'nil',條件'where(engine:nil)'匹配。 – akostadinov