2013-12-22 50 views
6

我有一個用戶模型,可選的twitter集成。Rails4/Rails5模型找不到

我已經添加了一個「用戶名」屬性,該屬性僅在用戶完成Twitter身份驗證時填充。

我想查找所有用戶的集成。找到某個屬性是屬於某個屬性的所有對象的最佳方式是什麼,或者哪裏不是零?

回答

19

最簡單的方法,我發現:

User.where.not(username: nil)

我很想看到其他迴應

+0

我很抱歉,但你是不正確的,至少在你問的問題是「它不是空的地方」。你需要使用'User.where.not(username:'')爲什麼?您的查詢將只忽略非零(或NULL)值,*不*空(又名空白)值。細微的差異,但重要的一個。例如,如果您有文本列,並且用戶刪除了所有文本並保存。它不再是'nil'(NULL),它是空的(如空字符串)。您的查詢仍然包含該記錄。 – Karl

+0

謝謝@Karl我更新了問題中的文字。字段不會被用戶更新,只能通過oauth集成和驗證不允許空白。 –

0

,你也可以做只是寫在WHERE語句的SQL:

User.where("username <> nil") 
+0

布萊爾安德森的答案絕對是這樣做的更好方式。如果你有一個不理解'<>'運算符的數據存儲,你會得到一個錯誤。數據存儲不可知的地方,它轉換爲它理解的任何東西。 –