我是铁杆的新人,所以请对我的无知感到耐心。我有两个模型:用户和事件。我已经生成了创建连接表events_users的迁移,并且我在两个模型上都声明了has_and_belongs_to_many。我通常要做的是为每个事件创建一个用户列表。我在事件控制器中有一个连接方法,它执行以下操作:
def join
if current_user
@events_users = Events_users.new
@events_users.user = current_user
@events_users.event = @event
@events_users.save
redirect_to events_url
else
redirect_to new_user_session_url
end
end
在我的routes.rb中,我有这个:
match 'events/:id' => 'events#join', :as => :join
基本上,该方法似乎不起作用,我的events_users表不会更新。我需要知道当用户点击“加入”时我必须做什么,以便在events_users表中添加他/她的id和事件ID。
答案 0 :(得分:0)
您可以将其简化为:
def join
if current_user
@event.users << current_user
@event.save
redirect_to events_url
else
redirect_to new_user_session_url
end
end
此外,@event.users
中的添加可以处理任何数组操作。