我試圖從一個按鈕的操作中在連接表內創建一條記錄。爲了解釋,我會有一個事件模型,並且想要跟蹤來自每個用戶的選定事件。rails-在連接表中創建記錄
我使用了HABTM關係,因爲我真的不需要任何額外的字段。
User.rb => has_to_and_belongs_to_many:事件 Event.rb => has_to_and_belongs_to_many:用戶 Events_Users遷移=> [USER_ID,事項標識,ID =>假]
所以,我怎麼想我會做到這一點是。 ...
users_controller.rb =>
def add_event
@user = User.find(session[:user_id])
params[:user][:event_ids] ||= []
if @user.update_attributes(params[:user])
flash[:notice]='Added to My Events'
redirect_to :action => "index"
end
end
和btn_link貌似....
<% @events.each do |event| %>
<%= link_to image_tag("heart.gif"), :controller => 'user', :action => 'add_event' %>
<%=h event.name %>
<%=h event.description %>
<% end %>
但我不知道如何檢查,看看它的工作......我將如何執行這些操作在控制檯,所以我可以檢查是否記錄被添加?
u = User.find(1)
e = Event.find(1)
????? x = u.e.create ?????
這很好!如何在控制器中添加<<操作,但我可以在網頁上執行操作? – ChrisWesAllen 2010-03-05 22:47:05
'<<'方法也可以在控制器中使用。 'u.event'返回一個數組。基本上你正在調用標準的數組操作。 Rails覆蓋標準行爲或'<<'(也稱爲'push')操作來更新'association'表。 – 2010-03-05 23:00:46