Ruby on rails 合并两个ActiveRecord查询结果

Ruby on rails 合并两个ActiveRecord查询结果,ruby-on-rails,activerecord,ruby-on-rails-3,Ruby On Rails,Activerecord,Ruby On Rails 3,我目前有两个活动记录查询,我想合并在一起 joins("join relationships ON user_id = followed_id"). where("follower_id = #{user.id}") 联接(“在用户\u id上联接关系=后面的\u id”)。 其中(“follower_id=#{user.id}”) 及 其中(:user\u id=>user.id) 基本上,我希望第二个的结果与第一个类似于SQL中的UNION语句。在ActiveRe

我目前有两个活动记录查询,我想合并在一起

joins("join relationships ON user_id = followed_id"). where("follower_id = #{user.id}") 联接(“在用户\u id上联接关系=后面的\u id”)。 其中(“follower_id=#{user.id}”) 及

其中(:user\u id=>user.id) 基本上,我希望第二个的结果与第一个类似于SQL中的
UNION
语句。在ActiveRecord中可以这样做吗

我更喜欢使用一个联合,而不是必须将所有
后面的id
s连接在一个字符串中,并在sql中使用
in
子句

有什么想法吗

-----编辑------
我正在寻找一种方法,使其能够与延迟加载一起工作

使用
关系和关系

Model.joins("join relationships ON user_id = followed_id").where("follower_id = {user.id}") & Model.where(:user_id => user.id)

这对我很有用:

Model.where(...) | Model.where(...)

这对我很有用:

Model.where(...) | Model.where(...)
Rails/ActiveRecord的更新版本可能本机支持此语法。它看起来类似于:

Model.where(foo: 'bar').or.where(bar: 'bar')
或者你也可以,只要坚持以下几点就行了:

Model.where('foo= ? OR bar= ?', 'bar', 'bar')

引用此

将强制ActiveRecord将结果放入数组中。这可以通过延迟加载来完成吗?ActiveRecord::Relation上的
&
方法是
合并的别名,从Rails 3.0.9开始,该别名已被删除。删除它正是因为@MikeJohnson指出的混淆:它不是合适的操作符。改用
relation.merge(other_relation)
。@zzawaideh只是想知道您是如何解决这个问题的。我正在尝试检索两个表,但需要它作为ActiveRecord::relation而不是数组。任何帮助都会非常感激哇,所以“合并”将它们与AND组合在一起。什么是或等效的?@Neil在rails repo中观察这个问题:你在这里救了我。谢天谢地,这将ActiveRecord_关系转换为数组对象。不能对结果对象应用.where等活动记录方法