2010-02-19 106 views
2

我工作的這個紀錄插入/刪除我不知道語法是什麼來執行查詢。導軌 - 創建/銷燬記錄在連接表

我有一個用戶模型和事件模型。我創建了一個名爲Personal的加入表,用於存儲用戶喜歡的任何事件的user_id和event_id。

我創造了我的事件控制器中的「添加」方法,所以每當有人點擊它運行於並執行創建邏輯,我試圖發展now.The動作被綁定到我添加到網格顯示額外的列所有的事件。

用戶模型=>

has_many :personals 

事件模型=>

has_many :personals 

個人模式=>

belongs_to :user 
belongs_to :events 

我認爲這將是像=>

@user = User.find(session[:user_id]) 
@event = Event.find(params[:id]) 
# Personal.new = User.Event? 

任何人都可以幫忙嗎?

+0

請提供更多信息。 msg的錯誤是什麼?發生了什麼,你不想或不發生你想要的事情? 我看到一個問題:你確定會話已經加載了user_id嗎?此外,請檢查您的日誌,看看傳入的參數對於您的控制器操作是什麼 – 2010-02-19 15:10:05

+0

請編輯您的問題併發布顯示它們之間關係的'User','Event'和'Personal'模型的代碼。 – 2010-02-19 15:19:53

+1

抱歉沒有更好地解釋情況,我更新了這個問題,並希望得到任何幫助 – ChrisWesAllen 2010-02-19 15:41:02

回答

12

如果您使用的是has_and_belongs_to_many協會,這將是不幸的,刪除相關的鏈接可能會非常棘手,因爲是爲每個鏈接都沒有標識符。

使用的has_many:通過關係更容易維護,將允許你做簡單的事情,如:

class User < ActiveRecord::Base 
    has_many :user_events 
    has_many :events, 
    :through => :user_events 
end 

@user.events.delete(@event) 

這不會刪除該事件本身,那將會需要一個事件#破壞通話,而是連接兩者的連接記錄。