Rails4/Rails5模型找不到

问题描述:

我有一个用户模型,可选的twitter集成。Rails4/Rails5模型找不到

我已经添加了一个“用户名”属性,该属性仅在用户完成Twitter身份验证时填充。

我想查找所有用户的集成。找到某个属性是属于某个属性的所有对象的最佳方式是什么,或者哪里不是零?

最简单的方法,我发现:

User.where.not(username: nil)

我很想看到其他回应

+0

我很抱歉,但你是不正确的,至少在你问的问题是“它不是空的地方”。你需要使用'User.where.not(username:'')为什么?您的查询将只忽略非零(或NULL)值,*不*空(又名空白)值。细微的差异,但重要的一个。例如,如果您有文本列,并且用户删除了所有文本并保存。它不再是'nil'(NULL),它是空的(如空字符串)。您的查询仍然包含该记录。 – Karl

+0

谢谢@Karl我更新了问题中的文字。字段不会被用户更新,只能通过oauth集成和验证不允许空白。 –

,你也可以做只是写在WHERE语句的SQL:

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

布莱尔安德森的答案绝对是这样做的更好方式。如果你有一个不理解''运算符的数据存储,你会得到一个错误。数据存储不可知的地方,它转换为它理解的任何东西。 –