2014-03-28 42 views
-1

這裏發生了什麼?在控制檯這個返回此:以零列值返回記錄

User.find(2).documents.first.issue 
=> nil 

但這返回此:

User.find(2).documents.where("issue = ?", nil) 
=> [] 

不應該第二個命令檢索找到的第一個記錄?

回答

2

您需要使用is null在數據庫中檢查nullis not nullnot null

User.find(2).documents.where("issue is ?", nil) 
+0

哦,我的上帝。謝謝。 –

+4

另一種方式:'where(issue:nil)'。養成使用鍵值對檢查等價性的習慣。 sql適配器將處理其餘部分。 – jvnill