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)))