很抱歉,如果它是一个菜鸟问题,但我在之前的帖子中找不到。
我可以使用有效记录实现此功能吗?
我有3个表Branch
,Person
和Address
以下关系:
Branch.Address (one-one)
Person.Address (one-one)
我从文档中知道这可以实现为多态关联,它在addressable_id
表中维护FK(ADDRESS
)以及类型信息(addressable_type=/Branch/|Person/
)。
我想要做的是在address_id
和Branch
表中使用Person
并将Address
保留为独立表,而不依赖于外部表。我还想保留从address
/ Branch
个对象控制Person
对象生命周期(级联保存/更新/删除)的能力。
答案 0 :(得分:0)
听起来你只需要指定分支和人belongs_to
地址
class Branch < ActiveRecord::Base
belongs_to :address
end
class Person < ActiveRecord::Base
belongs_to :address
end
class Address < ActiveRecord::Base
has_one :branch
has_one :person
end
这将为分支和人员提供方法#address
,并允许您以这种方式与其进行交互。