Rails: как лучше всего смоделировать эту ассоциацию has_and_belongs_to_many - PullRequest
0 голосов
/ 13 января 2012

Допустим, у меня есть две модели Event и Person.

Многие люди посещают какое-то мероприятие, и человек может посещать многие мероприятия.

class Event < ActiveRecord::Base
  has_and_belongs_to_many :people
end

class Person < ActiveRecord::Base
  has_and_belongs_to_many :events
end

create_table "events_people", :id => false, :force => true do |t|
  t.integer "event_id"
  t.integer "person_id"
end

Проблема в том, что событие представлено одним или несколькими speakers. Таким образом, для определенного event у нас должно быть people, кто посещает это событие, и один или много speakers, которые, конечно, тоже люди.

Как мне это сделать? Спасибо.

1 Ответ

1 голос
/ 13 января 2012

Попробуйте это:

class Event < ActiveRecord::Base
  has_and_belongs_to_many :people
  has_and_belongs_to_many :speakers, :class_name => "Person"
end

И у вас будет events_speakers таблица соединений, которая будет соответствовать event_id и person_id (что будет указывать на идентификаторы в вашей таблице people).

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