Я думаю, вы ищете has_one
ассоциацию с опцией :class_name
:
class Item < ActiveRecord::Base
has_one :engine, :foreign_key => 'engine_id', :class_name => 'ObjectConnection'
has_one :chassis, :foreign_key => 'chassis_id', :class_name => 'ObjectConnection'
end
Ассоциации должны иметь уникальное имя, и обычно ActiveRecord может выяснить:class_name
на основании ассоциации;у вас, однако, есть две вещи, указывающие на одно и то же место, поэтому вы должны соединить все это вручную.