将两个活动记录关系组合为活动记录关系

时间:2015-05-09 06:40:31

标签: ruby-on-rails ruby

我有两组有效记录

users_by_type = User.where(type: 'customer')

这个类是:users_by_type.class =>活动记录关系

users_by_tag = User.tagged_with('admin')

这个类是:users_by_tag => ActiveRecord关系

当我将两组合并为:

users = users_by_type + users_by_tag
or
users = users_by_type.merge(users_by_tag)

它将结果作为数组,但我希望它作为活动记录关系。

用户类是:数组

因为在数组中,我无法使用where子句和group子句。

如何组合两个集合以便我可以使用where和group子句?

1 个答案:

答案 0 :(得分:2)

你需要的是一个用于活动记录的#OR方法,遗憾的是还没有实现,但它已经在github中合并,并将与rails 5一起发布

以下是pull requestdhh's comment关于何时发布

的信息

同时您可以选择使用arel,例如mentioned here

或者有两种查询的ids,然后使用这些ID创建第三个查询,这是一种愚蠢的糟糕方式。