2

has_many :through アソシエーションを使用しようとすると、結合テーブルでジェネリック キーが検索されるようです。例

class Ots::Foo < ActiveRecord::Base
  has_many :foo_bars, :class_name => '::Ots::FooBar', :foreign_key => :ots_foo_id
  has_many :bars, :class_name => '::Ots::Bar', :through => :foo_bars
end

class Ots::Bar < ActiveRecord::Base
  has_many :foo_bars, :class_name => '::Ots::FooBar', :foreign_key => :ots_bar_id
  has_many :bars, :class_name => '::Ots::Bar', :through => :foo_bars
end

class Ots::FooBar < ActiveRecord::Base
  belongs_to :foo, :class_name => "::Ots::Foo", :foreign_key => :ots_foo_id
  belongs_to :bar, :class_name => "::Ots::Bar", :foreign_key => :ots_bar_id
end

f = Foo.find(1)
f.bars  =># invalid column name 'bar_id'

これは私が期待すべきことですか?名前空間に対するよりエレガントなソリューションはありますか?

4

0 に答える 0