IS A relationship in rails and additional field in Join tabl

Hello,
I have a couple of questions:

  1. How to implement IS A relationship

    I have an events table and model
    person table and model
    Now events contain speakers and speakers are people.
    So how to implement is a relationship, like speaker IS A person
    I DO NOT have speaker table and model. Is there a need to create it.

  2. For the time being, I have defined has_many :through relationship
    between people and events. In the join table I want to store the TOPIC
    that the speaker will speak in the event. So how can i store it from the
    form.

so the join table should look like
person_id event_id Topic
Thank you.

The answer depends on whether or not ‘speaker’ is a special kind of
person that has certain attributes and abilities that only a speaker
has. If that is the case then you can subclass using Single Table
Inheritance by adding a ‘type’ column to your people table and
implementing the Speaker class like this:

class Person < ActiveRecord::Base
…general person kinds of things…
end

class Speaker < Person
…special speaker stuff…
end

The “<” in the class definition indicates it’s inheritance. And, yes,
that means Person IS A extension of the ActiveRecord::Base class.

Now, if your intention is only to say “the speaker at this event is
that particular person over there” then you can do this:

class Event < ARec::Base
belongs_to :speaker, :class_name=>‘Person’
end

As show you’ll need a ‘speaker_id’ column on the event. You could
also make it ‘person_id’ if you prefer, but you’ll need to
add :foreign_key=>‘person_id’ to the belongs_to invocation. Either
way, this means you can call the person associated with the event the
‘speaker’ in the context of the Event.