Rails4/Rails5模型找不到
问题描述:
我有一个用户模型,可选的twitter集成。Rails4/Rails5模型找不到
我已经添加了一个“用户名”属性,该属性仅在用户完成Twitter身份验证时填充。
我想查找所有用户的集成。找到某个属性是属于某个属性的所有对象的最佳方式是什么,或者哪里不是零?
答
最简单的方法,我发现:
User.where.not(username: nil)
我很想看到其他回应
答
,你也可以做只是写在WHERE语句的SQL:
User.where("username <> nil")
+0
布莱尔安德森的答案绝对是这样做的更好方式。如果你有一个不理解''运算符的数据存储,你会得到一个错误。数据存储不可知的地方,它转换为它理解的任何东西。 –
我很抱歉,但你是不正确的,至少在你问的问题是“它不是空的地方”。你需要使用'User.where.not(username:'')为什么?您的查询将只忽略非零(或NULL)值,*不*空(又名空白)值。细微的差异,但重要的一个。例如,如果您有文本列,并且用户删除了所有文本并保存。它不再是'nil'(NULL),它是空的(如空字符串)。您的查询仍然包含该记录。 – Karl
谢谢@Karl我更新了问题中的文字。字段不会被用户更新,只能通过oauth集成和验证不允许空白。 –