2011-10-03 58 views
6

我想用其中的方法轨道3不是零

MyModel.where(:some_id => !nil) 

,但它不工作,选择不从我的表空的所有记录,还有没有其他的解决办法做到这一点?

回答

7

使用字符串,而不是一个哈希

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

您可以使用:

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

您可以使用Arel语法(其中有被依赖数据库的奖金),它这样做:

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

不错......我觉得arel在rails开发人员中有点被低估 – lucapette

+0

@lucapet特同意,虽然准不存在的文件可能是由于... –

+0

@BenoitGarret谢谢你,你救了这一天!我有一个过滤器查询在sqlite3下工作,但打破了Postgres。我不知道Arel。谢谢你的提示。我会仔细看看的。 – Guillaume