如何创建同时链接到多个其他模型的模型?

时间:2018-03-19 00:04:45

标签: ruby-on-rails

我需要创建一个联系模型,但我想将它链接到至少两个模型(供应商和客户)。如果我创建了一个多态关联,我最了解的是每个联系人仍然只有一个连接。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

您可以拥有一对多polymorphic association。在您的示例中,它将类似于:

class Contact < ApplicationRecord
  belongs_to :contactable, polymorphic: true
end

class Client < ApplicationRecord
  has_many :contacts, as: :contactable
end

class Vendor < ApplicationRecord
  has_many :contacts, as: :contactable
end

我不确定你是否一定需要它。基本的has_many关联应该可以解决问题。

class Contact < ApplicationRecord
  belongs_to :client
  belongs_to :vendor
end

class Client < ApplicationRecord
  has_many :contacts
end

class Vendor < ApplicationRecord
  has_many :contacts
end