2012-05-02 43 views
0

我使用Devise,所以我有一個用戶表。 我已經添加了一個Employee表和一個Contact表(客戶聯繫人)。 每個員工和聯繫人都將擁有自己的user_id。RoR用戶聯繫員工關係

什麼是建立表關係的最佳方法?

1)讓員工和聯繫人belongs_to:用戶?

2)多態性?

感謝

更新=============

我改變了代碼爲Yosep說。

但是,我無法弄清楚如何在用戶索引列表中顯示員工記錄中的字段。例如,用戶的列表(索引)應該包含employee.first_name。我想這=

<% @users.each do |user| %> 
    <tr> 
    <td><%= user.id%></td> 
    <td><%= Employee.where(:user_id => user.id).first_name %> </td><td><%= 

,我想這:

<td><%= Employee.find_by_user_id(user).first_name %> </td> code 

回答

1

事情是這樣的......

class Employee < ActiveRecord::Base 
    belongs_to :user 

class Contact < ActiveRecord::Base 
    belongs_to :user 

class User < ActiveRecord::Base 
    has_many :employees 
    has_many :contacts 

一旦你這樣做,你可以做神奇的東西,如:

employees = User.find(1).employees 
+0

在我的模型中,用戶是一個員工或一個聯繫人。我應該在類User中使用has_one嗎? – Reddirt