加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-4 – 如何在rails 4中编写具有多个条件的where.no

发布时间:2020-12-17 01:36:58 所属栏目:百科 来源:网络整理
导读:我要表达的是:Model.where(“一个IS NOT NOTOR或非NULL”). 在Rails 4中,where.not子句被启用:Model.where.not(a:nil,b:nil). 但是,此表达式等于Model.where(“不是NULLANDb不是NULL”). 如何用where.not子句表达“一个IS NOT NULLORb IS not NULL”?
我要表达的是:Model.where(“一个IS NOT NOTOR或非NULL”).

在Rails 4中,where.not子句被启用:Model.where.not(a:nil,b:nil).

但是,此表达式等于Model.where(“不是NULLANDb不是NULL”).

如何用where.not子句表达“一个IS NOT NULLORb IS not NULL”?

解决方法

您可以使用where.not尝试创建查询,例如a和b属性:

query = Model.where.not(a: nil,b: nil)

然后通过传递or运算符,在之前创建的查询的where值中使用inject:

Model.where(query.where_values.inject(:or))

这将为您提供如下查询:

SELECT "model".* FROM "model" WHERE ("model"."a" IS NOT NULL OR "model"."b" IS NOT NULL)

尽管第一个使用AND运算符给你一些东西,比如:

SELECT "model".* FROM "model" WHERE ("model"."a" IS NOT NULL) AND ("model"."b" IS NOT NULL)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读