Ruby on rails 活动记录外键?
例如,我想要一个模型,其中客户既有技术联系人也有管理员联系人。 我希望在客户记录中为技术联系人和管理联系人指定字段 键应该位于Customer表中,因为多个客户具有相同的技术联系人 我好像没法让它工作 有什么想法吗 谢谢 J客户模式: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客户
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