我有一个有问题的关系,有些物品可以捆绑到汽车里。
例如:
class Item < ActiveRecord::Base
has_many :object_connections, :foreign_key => 'engine_id'
has_many :object_connections, :foreign_key => 'chassis_id'
看起来它只看最后一个。有没有办法指定?此外,是否可以添加:is_engine => true
等条件?这是一个被采用的项目,只是试图让它发挥作用。
THX
答案 0 :(得分:0)
我认为您正在寻找has_one
association :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
;但是,你有两件东西指向同一个地方,所以你必须手工连接所有东西。