我試圖從一個按鈕的操作在連接表內創建一條記錄。我會有一個事件模型,並希望跟蹤來自每個用戶的選定事件。Rails - 添加記錄從控制器加入表
我使用了HABTM關係,因爲我不需要任何額外的字段。
User.rb:
has_to_and_belongs_to_many :events
Event.rb:
has_to_and_belongs_to_many :users
Events_Users遷移:
[user_id, event_id, id=>false]
我越來越粘在實際創建的記錄。早有人幫我在控制檯中添加中記載:
u = User.find(1)
u.events << Event.find(1)
現在我想執行的操作,只需點擊某個鏈接的結果......這是在正確的方向?
def add
@user = User.find(session[:user_id])
@event = Event.find(params[:id])
if @user.events.save(params[:user][:event])
flash[:notice] = 'Event was saved.'
end
end
我應該添加一個@user.events.new
的地方,如果這樣做,我把這些用戶和事件的PARAMS在哪裏?
你的意思@ user.events << @ event.name ??? – ChrisWesAllen 2010-03-05 23:15:02
不。如果我正確理解你對問題的描述,那麼這段代碼就沒有意義。 – Gdeglin 2010-03-05 23:18:58
感謝您的建議,我將「<%= link_to image_tag(」grid_heart.gif「,:border => 0),:controller =>'event',:action =>'add_event'%>」更改爲「< %= button_to「添加」,:控制器=>'事件',:動作=>「添加」%>「但我仍然有一個」未初始化常量EventController「的錯誤我把方法放在錯誤的控制器? – ChrisWesAllen 2010-03-05 23:29:03