使用has_and_belongs_to_many连接表时如何创建列表?

时间:2012-05-17 09:25:58

标签: ruby-on-rails-3

我是铁杆的新人,所以请对我的无知感到耐心。我有两个模型:用户和事件。我已经生成了创建连接表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。

1 个答案:

答案 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中的添加可以处理任何数组操作。