我有两组有效记录
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子句?
答案 0 :(得分:2)
你需要的是一个用于活动记录的#OR
方法,遗憾的是还没有实现,但它已经在github中合并,并将与rails 5一起发布
以下是pull request和dhh's comment关于何时发布
的信息同时您可以选择使用arel,例如mentioned here
或者有两种查询的ids,然后使用这些ID创建第三个查询,这是一种愚蠢的糟糕方式。