2010-07-30 68 views
3

我有活動和用戶/團隊。加入表格和導軌

class Event 
    has_many :users, :through => :registrations 
end 
class User 
    has_many :events, :through => :registrations 
end 
class Registration 
    belongs_to :users 
    belongs_to :events 
end 

當我註冊一個用戶,我喜歡他們這樣連接到事件:

@event.users << @user 

這是否暗示爲用戶創建/事件登記對象?我在註冊遷移中添加了一個:goal_amount列,並且我希望能夠在創建註冊時設置:goal_amount。我需要顯式地創建一個註冊(即:Registration.create(:user_id => @user.id, :event_id => @event.id, :goal_amount => params[:goal_amount])要做到這一點

回答

2

是,將用戶添加到事件自動創建關係對象
是的,如果你想添加您必須手動創建的關係?在中間表中的參數。

一個解決方案,使它看起來冷卻器是創建事件對象add_user方法。

def add_user user, goal_amount 
    Registration.create({ 
     :user => user, 
     :event => self, 
     :goal_amount => goal_amount) 
    }) 
end 

然後你只需要調用

@event.add_user @user, 100 
+0

謝謝!這工作完美:) – 2010-07-30 16:06:10

+0

標記我的答案接受然後;) – 2010-08-02 09:40:38