Ruby on rails 活动记录外键?

Ruby on rails 活动记录外键?,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,例如,我想要一个模型,其中客户既有技术联系人也有管理员联系人。 我希望在客户记录中为技术联系人和管理联系人指定字段 键应该位于Customer表中,因为多个客户具有相同的技术联系人 我好像没法让它工作 有什么想法吗 谢谢 J客户模式: class Customer < ActiveRecord::Base has_one :tech_contact has_one :admin_contact end class客户

例如,我想要一个模型,其中客户既有技术联系人也有管理员联系人。 我希望在客户记录中为技术联系人和管理联系人指定字段

键应该位于Customer表中,因为多个客户具有相同的技术联系人

我好像没法让它工作

有什么想法吗

谢谢

J

客户模式:

class Customer < ActiveRecord::Base
  has_one :tech_contact
  has_one :admin_contact
end
class客户
您可以创建一个名为Contact的基本模型,并使用单表继承(STI)

class联系人
技术联系人:

class TechContact < Contact
  belongs_to :customer, :foreign_key => :customer_id
end
class-TechContact:customer\u id
结束
管理员联系人

class AdminContact < Contact
  belongs_to :customer, :foreign_key => :customer_id
end
class-AdminContact:customer\u id
结束
表架构: 客户:id、名字、姓氏。。。 联系人:id,:类型,客户id


但这只是一个机会。

你说的“命名字段”是什么意思?你能解释一下技术和管理联系人需要保存哪些数据吗?技术联系人和管理员联系人的数据是否相同?这里的外键不应该是“技术联系人id”和“管理员联系人id”?这对我不起作用。“联系人id”字段属于哪个表?我更新了答案@Ryan Bigg..不只是一个外键字段..否则您可以从两个模型中添加两个普通关联。但我的示例显示了STI解决方案中的这种情况。。
class AdminContact < Contact
  belongs_to :customer, :foreign_key => :customer_id
end