2012-01-22 19 views

risposta

18

Questo è il modo giusto per farlo. Per trovare le auto il cui motore è nil, per esempio, utilizzare:

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

Se stai cercando di guardare per la assenza di un campo (piuttosto che uno che è impostato su nil), utilizzare il $exists predicato:

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

si noti che l'impostazione di un campo foo di essere nil e manca un campo denominato foo sono due cose diverse.

+1

Si noti inoltre che se: engine è una matrice del modulo "[a, b, c, nil]", la clausola where ": engine => nil" corrisponderà a quelle righe. –

+0

Per me se ': engine' esiste o è' nil', la condizione 'dove (engine: nil)' corrisponde. – akostadinov

Problemi correlati