0

私は何度も何度も見ました... まだ私には意味がありません。has_and_belongs_to_manyいつvsを使うべきかわからないhas_many through:

というわけで、カレンダー。ユーザーがイベントを作成します。招待された一部の人々は (ここでは関係のない関係モデルを通じて) イベントを表示でき、イベントに参加することを選択した場合、イベントの「所有権を取得」します。したがって、ユーザーは多くのイベントを持つことができ、イベントは多くのユーザーを持つことができます。

ユーザー...

class User < ActiveRecord::Base
  attr_accessible :email, :name, :password, :password_confirmation
  has_secure_password

  has_many :attendances
  has_many :events, through: :attendances

  #some other stuff for relationships and validations

出席...

class Attendance < ActiveRecord::Base
  attr_accessible :event_id, :user_id

  belongs_to :event
  belongs_to :user

  #some other stuff for validations

イベント...

class Event < ActiveRecord::Base
  attr_accessible :what, :where, :date, :why

  has_many :attendances
  has_many :users, through: :attendances

  #some other stuff for validations

そして、イベントコントローラー...

class EventsController < ApplicationController
  before_filter :signed_in_user, only: [:create, :destroy]

  def create
    @event = current_user.events.build(params[:event])
    if @event.save
      flash[:success] = "Event created!"
      redirect_to root_url
    else
      @feed_items = []
      render 'pages/home'
    end
  end

events_users テーブルが存在します。そこにある2つの列だけです。

イベントを作成すると、イベントは正常に作成されますが、イベントを作成したユーザーには関連付けられません。どのユーザーにも関連付けられておらず、events_users テーブルは空白です。

私は何が欠けていますか? を使用する必要がありhas_many through:ますか?

4

0 に答える 0