0

我需要从两个相似但不相同的单独模型中检索信息。我正在尝试做类似的事情

我研究了一些方法,但是它们返回一个活动对象数组,而不是我的应用程序的许多功能工作所需的 ActiveRecord::Relation。

有没有办法返回一个包含两个表联合的 ActiveRecord::Relation 对象?

我尝试过类似的事情

@group = Mymodel.find_by_sql("SELECT id FROM Mymodels 
  UNION SELECT id FROM AnotherModels")

并且还使用 Model.where 方法进行了探索,但是无法返回 ActiveRecord::Relation

编辑:

为了清楚起见,我需要返回 ActiveRecord::Relation ,它是两个表的联合或合并

4

2 回答 2

0

尝试这样的事情:

Model.joins(:other_model).where("attr1" = :attr1,
                               { attr1: "example" }).group(:attr1)

既然您评论了where,我where在通话中添加了该方法。最后,您还可以:group对所有内容进行分组。

于 2012-06-28T14:00:05.603 回答
0

你试过MyFirstModel.joins(:my_second_models)吗?在此处查看joinsAPI 中的详细信息。

编辑:单表继承是解决此问题的更好方法。请参阅下面的评论。

于 2012-06-28T13:54:21.243 回答