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

On Dec 9, 6:07am, “kahou l.” [email protected] wrote:

Hi,

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