Rails:对此has_and_belongs_to_many关联进行建模的最佳方法是什么

时间:2012-01-13 03:23:22

标签: ruby-on-rails postgresql activerecord

假设我有两个模型EventPerson

很多人参加活动,一个人也可以参加很多活动。

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 个答案:

答案 0 :(得分:1)

试试这个:

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

您将拥有一个与events_speakersevent_id匹配的person_id联接表(这将指向people表中的ID)。