2011-10-03 13 views
6

Estoy tratando de seleccionar todos los registros que no son nulos de mi mesa, donde utilizando el métodocarriles 3 por no decir nulas

MyModel.where(:some_id => !nil) 

pero no funciona, ¿hay alguna otra solución para hacer esto?

Respuesta

7

utilizar una cadena en lugar de un hash

MyModel.where("some_id is not null") 
1

Se puede utilizar:

MyModel.where("some_id IS NOT NULL") 
12

Puede hacerlo utilizando la sintaxis Arel (que tiene la ventaja de ser la base de datos independiente):

MyModel.where(MyModel.arel_table['some_id'].not_eq(nil)) 
+0

Agradable ... Siento que arel está aún un poco subestimado entre los desarrolladores de rieles – lucapette

+0

@lucapet aceptó, aunque la documentación cuasi inexistente puede ser la culpable de eso ... –

+0

@BenoitGarret ¡Gracias, salvaste el día! Tenía una consulta de filtro trabajando en sqlite3, pero rota en Postgres. No sabía Arel. gracias por la pista. Lo investigaré. – Guillaume

Cuestiones relacionadas