活动记录foreign_keys?

时间:2013-08-25 22:49:29

标签: ruby-on-rails ruby-on-rails-3 activerecord

例如,我想要一个客户同时拥有技术联系人和管理员联系人的模型。 我想要tech_contact和admin_contact的客户记录中的命名字段。

密钥应位于Customer表中,因为多个客户使用相同的技术联系人......

我似乎无法使其发挥作用。

有什么想法吗?

谢谢,

Ĵ

1 个答案:

答案 0 :(得分:0)

客户模式:

class Customer < ActiveRecord::Base
  has_one :tech_contact
  has_one :admin_contact
end

您可以创建一个名为Contact的基本模型,并使用单表继承(STI)。

class Contact < ActiveRecord::Base
end

TechContact:

class TechContact < Contact
  belongs_to :customer, :foreign_key => :customer_id
end

AdminContact

class AdminContact < Contact
  belongs_to :customer, :foreign_key => :customer_id
end

表架构: customers:id,first_name,:last_ name,... contacts:id,:type,customer_id,...

但这只是一次机会。