小编典典

合并两个 ActiveRecord::Relation 对象

all

假设我有以下两个对象:

first_name_relation = User.where(:first_name => 'Tobias') # ActiveRecord::Relation
last_name_relation  = User.where(:last_name  => 'F眉nke') # ActiveRecord::Relation

是否可以结合这两种关系来产生一个ActiveRecord::Relation包含两种条件的对象?

注意:我知道我可以链接 wheres 来获得这种行为,我真正感兴趣的是我有两个单独的ActiveRecord::Relation对象的情况。


阅读 110

收藏
2022-07-12

共1个答案

小编典典

如果要使用AND(intersection)
组合,请使用merge

first_name_relation.merge(last_name_relation)

如果要使用 (union) 进行组合,OR请使用“”
or

first_name_relation.or(last_name_relation)

‘仅在 ActiveRecord 5+ 中;对于 4.2 安装where-or
backport。

2022-07-12