2014-02-13 39 views
0

我有一個用戶和一個事件模型。我希望能夠將每個事件與多個參加用戶相關聯,然後讓另一個也在與會者之間的用戶被標記爲所有者,這樣我就可以撥打電話,如@ event.users,以檢索所有參加者@ event.owner檢索所有者,然後還可以調用@ user.events獲取用戶參加的事件。用戶和事件之間的ActiveRecord關聯

創建名爲Events_Users的第三個模型是最理想的:通過將user_id與event_id一起存儲來跟蹤用戶和事件之間的關係,或者僅使用user_id更新現有的Event模型以及owner_id ?

請一些具體建議將非常感激 感謝

回答

2

我會做這樣的。

class Event < ActiveRecord::Base 
    belongs_to :owner, class_name: 'User' 
    has_and_belongs_to_many :attendees, class_name: 'User' 
end 

這樣一來,你將不得不引用ID的用戶在你的events表(所有者),並且將有連接表爲用戶/活動(參加者的事件)典型HABTM關係。

希望它有幫助!

更新 這裏有關聯的用戶等級:

class User < ActiveRecord::Base 
    has_many :events 
    has_and_belongs_to_many :attended_events, class_name: 'Event' 
end 

更新2 這裏的link到Rails的指南協會。它將解釋如何爲這些類型的關係創建適當的表和列。

+0

wouldnt用戶模型也需要定義關聯? – Tarlen

+0

當然他們需要。我相信這很明顯。我會在一秒鐘內更新我的答案。 – marvelousNinja

+0

好吧,很酷,我很新的Rails,仍然試圖得到東西的掛鉤 – Tarlen