多型關聯
這種型別的關聯允許 ActiveRecord 模型屬於多種模型記錄。常見例子:
class Human < ActiveRecord::Base
has_one :address, :as => :addressable
end
class Company < ActiveRecord::Base
has_one :address, :as => :addressable
end
class Address < ActiveRecord::Base
belongs_to :addressable, :polymorphic => true
end
如果沒有此關聯,你將在地址表中擁有所有這些外來鍵,但你只有其中一個的值,因為在這種情況下,地址只能屬於一個實體(人或公司)。這是它的樣子:
class Address < ActiveRecord::Base
belongs_to :human
belongs_to :company
end