ruby-on-rails – 查找属性存在的记录
发布时间:2020-12-16 20:09:34 所属栏目:百科 来源:网络整理
导读:我有一个具有用户名,电子邮件和名称的用户模型. 用户名和电子邮件需要注册,但不是名字. 查询所有填写名称的用户(即不是零)的查询是什么? 该查询应该是Rails 3.2和4.0兼容. 我正在考虑以下几点: User.where(name: present?) 解决方法 当下? present? 基本
我有一个具有用户名,电子邮件和名称的用户模型.
用户名和电子邮件需要注册,但不是名字. 查询所有填写名称的用户(即不是零)的查询是什么? 该查询应该是Rails 3.2和4.0兼容. 我正在考虑以下几点: User.where(name: present?) 解决方法
当下?
class Object def present? !blank? end def blank? respond_to?(:empty?) ? !!empty? : !self end end ActiveRecord条件 在Rails 4中,没有原始的sql代码就可以完成任务. # Both lines lead to the same result: User.where.not(name: [nil,""]) User.where.not(name: nil).where.not(name: "") 因为没有原始的sql代码,所以不必担心如果它们与每个数据库适配器一起使用.实际上,这对mysql和postgres都有效. to_sql 如果您附加了.to_sql,例如在rails控制台中,您可以看到它们如何转换为sql查询. # rails console User.where.not(name: [nil,""]).to_sql # => "SELECT "users".* FROM "users" WHERE (NOT (("users"."name" = '' OR "users"."name" IS NULL)))" User.where.not(name: nil).where.not(name: "").to_sql # => "SELECT "users".* FROM "users" WHERE ("users"."name" IS NOT NULL) AND ("users"."name" != '')" 进一步阅读 > [1] Rails 4 guide “ActiveRecord Query Interface” (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容