如何创建和使用多态关系?

Kri*_*r N 1 ruby activerecord

我是Ruby的新手,我读到了一个"多态关系".

我读到的是我的头脑.你能用简单的术语帮助我理解多态关系吗?

Chu*_*bas 5

扩展Jinesh建议的帖子,整体概念可以解释为:

一个belongs_to关联性由场指向另一个表中的记录表中给出.例如,如果您想为a Person及其地址建模,则可以

class Person
  has_one :address
end

class Address
  belongs_to :person #Has a field person_id
end
Run Code Online (Sandbox Code Playgroud)

但是,如果你有另一个Company将使用地址的模型,你将不得不共享该字段person_id.所以你把它变成了一个addressable_id,而Person和Company都是Address模型的"可寻址"对象.所以,当你指定

class Person
  has_one :address, :as => :addressable
end
Run Code Online (Sandbox Code Playgroud)

你告诉Rails每当你搜索一个人的地址时,它会addresable_id在地址表上的字段上查找.