Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 查找属性存在的记录大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个具有用户名,电子邮件和名称的用户模型.

用户名和电子邮件需要注册,但不是名字.

查询所有填写名称的用户(即不是零)的查询是什么?

该查询应该是Rails 3.2和4.0兼容.

我正在虑以下几点:

User.where(name: present?)

解决方法

当下?

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”
> [2] Definition of present? on github

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails – 查找属性存在的记录全部内容,希望文章能够帮你解决ruby-on-rails – 查找属性存在的记录所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。