0
2つのモデルEvent
とPerson
があります。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_speakers
がevent_id
とperson_id
にマッチするテーブルを結合する必要があります:
私は自分でコードを試したことはありませんが、どのようにアクティブレコード協会のガイドを理解しているのかは、 'events_speaker'テーブルの' speaker_id'ではなく 'person_id'です。これは、HABTMアソシエーションが発言者を探すためです。 – rocketscientist