私は何度も何度も見ました... まだ私には意味がありません。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:
ますか?