2011-10-03 74 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