2012-01-13 7 views
0

2つのモデルEventPersonがあります。Rails:これをモデル化する最良の方法は何ですか?

多くの人がイベントに出席し、多くのイベントに参加することができます。

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 

問題は、イベントが1つまたはspeakers多くが提示されていることです。したがって、特定のeventの場合は、そのイベントに出席するpeopleと、もちろん、人々も1人または複数のspeakersが必要です。

どうすればよいですか?ありがとうございました。 (あなたのpeopleテーブル内のIDを指していると思われる)

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

そして、あなたはevents_speakersevent_idperson_idにマッチするテーブルを結合する必要があります:

答えて

1

はこれを試してみてください。

+0

私は自分でコードを試したことはありませんが、どのようにアクティブレコード協会のガイドを理解しているのかは、 'events_speaker'テーブルの' speaker_id'ではなく 'person_id'です。これは、HABTMアソシエーションが発言者を探すためです。 – rocketscientist

関連する問題