作爲一個例子,我想要一個客戶同時擁有技術聯繫人和管理員聯繫人的模型。 我希望tech_contact和admin_contact的客戶記錄中的命名字段。活動記錄foreign_keys?
的鍵應該駐留在客戶表,因爲多個客戶同樣的技術聯繫人...
我似乎無法得到這個工作。
任何想法?
感謝,
Ĵ
作爲一個例子,我想要一個客戶同時擁有技術聯繫人和管理員聯繫人的模型。 我希望tech_contact和admin_contact的客戶記錄中的命名字段。活動記錄foreign_keys?
的鍵應該駐留在客戶表,因爲多個客戶同樣的技術聯繫人...
我似乎無法得到這個工作。
任何想法?
感謝,
Ĵ
客戶模式:
class Customer < ActiveRecord::Base
has_one :tech_contact
has_one :admin_contact
end
您可以創建一個名爲聯繫的基本模型,並使用單表繼承(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
表模式: 客戶:ID,FIRST_NAME,:last_名,... 聯繫人:ID,:類型,CUSTOMER_ID ,...
但這只是一個機會。
這裏的外鍵不應該是「tech_contact_id」和「admin_contact_id」嗎? –
這不適合我。 'contact_id'字段屬於哪個表? –
我更新了我的答案。 @Ryan Bigg ..不只是一個foreign_key字段..另外你簡單的可以從兩個模型中添加兩個正常的關聯。但我的例子在STI解決方案中顯示了這種情況。 – Mattherick
「指定字段」是什麼意思?您能否解釋一下爲技術和管理員聯繫人保存的數據?技術和管理員聯繫人的數據是否相同? –