假设我有以下两个对象:
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
对象的情况.
最佳答案
如果您想使用 AND
(交集)进行组合,请使用 merge
:
first_name_relation.merge(last_name_relation)
如果您想使用OR
(并集)进行组合,请使用or
†:
first_name_relation.or(last_name_relation)
<小时/>
† 仅在 ActiveRecord 5+ 中;对于 4.2,安装 where-or向后移植。
关于ruby-on-rails - 组合两个 ActiveRecord::Relation 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9540801/