0

私はレールにかなり慣れていないので、私の無知を我慢してください。ユーザーとイベントの2つのモデルがあります。結合テーブル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テーブルは更新されません。ユーザーが「参加」をクリックして、自分のIDとイベントIDがevents_usersテーブルに追加されたときに、何をしなければならないかを知る必要があります。

4

1 に答える 1

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任意の配列操作を処理できます。

于 2012-05-17T09:41:52.343 に答える