Ruby on rails Rails 5:ActiveRecord,后跟OR条件:A&&;(B | | C)

Ruby on rails Rails 5:ActiveRecord,后跟OR条件:A&&;(B | | C),ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我的以下活动记录语句工作正常: Requirement.where(no: 0) Requirement.yes_no.or(Requirement.where.not(parent_req: nil)) 在需求模型中,我有一个enum字段,它也可以正常工作: enum response_type: { yes_no: 0, document: 1, interviewee: 2, sample_set: 3, brief_desc: 4 } 但当我把以上两种说法结合起来时: Requir

我的以下活动记录语句工作正常:

Requirement.where(no: 0)

Requirement.yes_no.or(Requirement.where.not(parent_req: nil))
在需求模型中,我有一个
enum
字段,它也可以正常工作:

enum response_type: { yes_no: 0, document: 1, interviewee: 2, sample_set: 3, brief_desc: 4 }
但当我把以上两种说法结合起来时:

Requirement.where(no: 0).where(Requirement.yes_no.or(Requirement.where.not(parent_req: nil)))
这给了我错误:

ArgumentError: Unsupported argument type: #<Requirement::ActiveRecord_Relation:0x005567c7c9bf88> (Requirement::ActiveRecord_Relation)

Requirement.yes\u no.或(Requirement.where.not(parent\u req:nil))。其中(no:0)


如Tom Lord所述,将
放在ar查询末尾的位置(编号:0)
,使用
(交叉点)进行组合

Requirement.where(no: 0).merge(Requirement.yes_no.or(Requirement.where.not(parent_req: nil)))

这是否应该是一个?
要求。其中(否:0)。合并(要求。是\否…)
是它起作用了。谢谢
Requirement.where(no: 0).merge(Requirement.yes_no.or(Requirement.where.not(parent_req: nil)))