Что не так с моей ассоциацией Rails 3 «многие ко многим»? - PullRequest
2 голосов
/ 13 октября 2011

Я не могу понять, что я делаю здесь неправильно ... Мне кажется, я не могу правильно определить класс Event в отношении строки "has_many: creators" ... Я создал тест rspec, чтобы убедиться, что создание экземпляра откликается на «создателей», но я не могу это передать ... Любые мысли приветствуются!

class Event < ActiveRecord::Base
has_many    :event_invitations
has_many    :creators,   :through => :event_invitations,
                 :source => :creator,
                 :class_name => "User"

class EventInvitation < ActiveRecord::Base
belongs_to  :user
belongs_to  :event

class User < ActiveRecord::Base

  has_many  :event_invitations,   :foreign_key => :creator_id
  has_many  :created_events,      :through => :event_invitations,
                                  :source => :event

1 Ответ

2 голосов
/ 13 октября 2011

EventInvitation принадлежит «пользователю», но вы сохраняете «creator_id».Вам нужно либо сохранить 'user_id', либо вызвать ассоциацию 'создатель'.

belongs_to :creator, :class_name => 'User'

И в вашей модели событий вы можете использовать это:

has_many :creators, :through => :event_invitations
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...