0

抱歉,如果这是一个菜鸟问题,但我在之前的帖子中找不到这个。

我可以用活动记录来实现吗?

我有 3 个表Branch, Person, 并Address具有以下关系:

Branch.Address (one-one)
Person.Address (one-one)

我从文档中知道这可以实现为多态关联,它addressable_id在表中维护 FK ()ADDRESS以及类型信息 ( addressable_type=/Branch/|Person/)。

我想要做的是address_id在两个表中都有BranchPerson并作为一个独立的表保存Address,而不依赖于外部表。我还想保留从/对象控制address对象生命周期(级联保存/更新/删除)的能力。BranchPerson

4

1 回答 1

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

这将为您提供#addressBranch 和 Person 的方法,并允许您以这种方式与之交互。

于 2013-06-11T21:46:10.957 回答