2012-01-22 9 views

Respuesta

18

Esa es la forma correcta de hacerlo. Para encontrar los coches cuyo motor es nil, por ejemplo, utilizar:

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

Si usted está tratando de buscar la ausencia de un campo (en lugar de uno que se establece en nil), utilizar el predicado $exists:

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

Tenga en cuenta que el establecimiento de un campo foo sea nil y carece de un campo denominado foo son dos cosas diferentes.

+1

También tenga en cuenta que si: engine es una matriz de la forma "[a, b, c, nil]", su cláusula where ": engine => nil" coincidirá con esas filas. –

+0

Para mí, si '' engine' existe o es 'nil', la condición' where (engine: nil) 'no coincide. – akostadinov

Cuestiones relacionadas