我想在按钮的操作中创建一个联结表中的记录。具体来说,我有一个事件模型,并希望跟踪每个用户选择的事件。
我使用了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]
所以我认为我应该这样做...
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 的值?
<<
方法在控制器中也可以使用。u.event
返回一个数组。实际上,您正在调用标准的数组操作。Rails覆盖了<<
(也称为push
)操作的标准行为,以更新association
表。 - Harish Shetty