I\'m currently working on a Rails 3 application that looks like it might need to use Class Table Inheritance for a couple of models.
A simplified example of what\'s goin
I recently forked a promising project to implement multiple table inheritance and class inheritance in Rails. I have spent a few days subjecting it to rapid development, fixes, commenting and documentation and have re-released it as CITIER (Class Inheritance and Table Inheritance Embeddings for Rails).
I think you could potentially combine it with the answers above?
Consider giving it a look: http://peterhamilton.github.com/citier
I looked at solutions like the class-table-inheritance repo, but this is much cleaner and more logical IMO.
It also supports the main SQL languages SQLite, MySQL, PostgreSQL and probably more but I haven;t tested them.
why not using Single Table Inheritance? for example:
class Person < ActiveRecord::Base
# some common code here
end
class Driver < Person
# Driver code
end
class Passenger < Person
# Passenger code
end
in this way you'll have a common class Person, plus two specific classes derived from it
Also there is a plugin 'acts_as_relation' to do this,
https://github.com/hzamani/acts_as_relation/
in your case the code will be this:
class Driver < ActiveRecord::Base
acts_as :person
end
class Passenger < ActiveRecord::Base
acts_as :person
end
Don't forget to add person_type
and person_id
columns to persons
table.
Now both Drive and Passenger inherit Person attributes, validations and methods.
I'm using the class table inheritance plugin and it working well, http://github.com/brunofrank/class-table-inheritance