Extending a subclass from an abstract class

Hi,

I have a question regarding to extend a subclass from an abstract class.

Suppose I have an abstract class which has 3 properties in the table:

// event.rb
class Event < ActiveRecord::Base
   self.abstract_class = true
end

// event migration
class CreateEvents < ActiveRecord::Migration
  def change
    create_table :events do |t|
      t.string :name
      t.string :address
      t.string :telephoneNumber

      t.timestamps
    end
  end
end

If I want to extend this class from this event class, say a Party class:

// party.rb
class Party < Event
end

and it has 1 properties in its own party table.

My question is that is there a way in Rails so that I can carry those 3
properties from the Event class to the Party class?

The problem is that I don't know how to carry out the parent properties
to the child class automatically. Or do I need to type all the parent
properties everytime I need to extend from the abstract class (this
sounds painful...)

Thanks,
Kahou

Hi,

If I want to extend this class from this event class, say a Party class:

// party.rb
class Party < Event
end

and it has 1 properties in its own party table.

My question is that is there a way in Rails so that I can carry those 3
properties from the Event class to the Party class?

The problem is that I don't know how to carry out the parent properties
to the child class automatically. Or do I need to type all the parent
properties everytime I need to extend from the abstract class (this
sounds painful...)

You have a few choices:
- if you do use an abstract class then yes, for each subclass you'll
need to create the table for the subclass
- you could switch to single table inheritance: all the subclasses
share the same table
- maybe you don't want inheritance at all, e.g. maybe your various
classes should belong_to some common model

Fred