假设我有以下两个对象:
first_name_relation = User.where(:first_name => 'Tobias') # ActiveRecord::Relation last_name_relation = User.where(:last_name => 'F眉nke') # ActiveRecord::Relation
是否可以结合这两种关系来产生一个ActiveRecord::Relation包含两种条件的对象?
ActiveRecord::Relation
注意:我知道我可以链接 wheres 来获得这种行为,我真正感兴趣的是我有两个单独的ActiveRecord::Relation对象的情况。
如果要使用AND(intersection) 组合,请使用merge:
AND
merge
first_name_relation.merge(last_name_relation)
如果要使用 (union) 进行组合,OR请使用“” :or
OR
or
first_name_relation.or(last_name_relation)
‘仅在 ActiveRecord 5+ 中;对于 4.2 安装where-or backport。