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