我的模型有:
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查询的情况下执行此操作?
由于
答案 0 :(得分:0)
您必须为每个belongs_to设置foreign_key。请参阅Same Model for Two belongs_to Associations
中的详情belongs_to :foo_A, :class_name => "Foo", :foreign_key => 'foo_a_id'
belongs_to :foo_B, :class_name => "Foo", :foreign_key => 'foo_b_id'