ActiveRecord には A と B という 2 つのモデルがあり、両方のモデルの主キーである item_id フィールドがあります。
しかし、それらの間に関連性はありません (has_many、belongs_to など)
A: item_id、attr_1、attr_2
B: item_id、attr_3、attr_4
ここで、attr_1 ..attr_4 を含むいくつかの句について、A と B の両方からデータをフェッチする必要があります。
SQL: A.item_id=B.item_id および attr_1="foo" および attr_3="bar" である A、B から A.item_id、attr_1、attr_2、attr_3、attr_4 を選択します。
私が今考えているオプションは、AとBの両方がクエリの分割(テーブル、句、フィールドなど)をコントローラーに返し、コントローラーに上記のようなクエリを作成させることです。次に、ActiveRecord::Base.connection.execute(query) を使用してクエリを実行します。
PS: 最初のモデルから結果を取得したくありません。それを反復して、2 番目のモデルから結果を取得します。あまりにも多くの db クエリが発生します。また、関連のないデータが含まれているため、両方のテーブルをマージしたくありません。
より良い提案はありますか?