0

類似しているが同じではない2つの別々のモデルから情報を取得する必要があります。私は次のようなことをしようとしています

私はいくつかのメソッドを調べましたが、それらは私のアプリの機能の多くが機能するために必要なActiveRecord::Relationではなくアクティブオブジェクトの配列を返します。

両方のテーブルの和集合を含むActiveRecord::Relationshipオブジェクトを返す方法はありますか?

私は次のようなことを試しました

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

また、Model.whereメソッドを使用して調査しましたが、ActiveRecord::Relationを返すことはできません。

編集:

明確にするために、2つのテーブルの結合またはマージである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)か?こちらjoinsのAPIで詳細を確認してください。

編集:単一テーブル継承は、この問題に対するより良い解決策です。以下のコメントを参照してください。

于 2012-06-28T13:54:21.243 に答える