0

私は持っているモデルを持っています:

Class Bar < ActiveRecord::Base
#...
belongs_to :foo_A, :class_name => "Foo"
belongs_to :foo_B, :class_name => "Foo"

そして、次のようにテーブル Foo から情報をフェッチしたいと思います (コードは機能しません)。

Bar.joins(:foo_A, :foo_B).select("bars.*, foos_a.name as foo_a_name, foos_b.name as foo_b_name").all

もちろん、foos_a または foos_b テーブルはありません... foos テーブルだけです。

SQLクエリ全体を書かずにそれを行う方法はありますか?

ありがとう

4

1 に答える 1

0

それぞれの属している場所に対して、foreign_key を設定する必要があります。2 つの belongs_to アソシエーションの同じモデルの詳細を参照してください。

belongs_to :foo_A, :class_name => "Foo", :foreign_key => 'foo_a_id'
belongs_to :foo_B, :class_name => "Foo", :foreign_key => 'foo_b_id'
于 2012-09-09T09:30:30.097 に答える