ActiveRecord Multiple Inheritance solution

Hello,

I am stuck in an environment where there is a massive Oracle database model in place which cannot be changed, is accessed by large java systems, and have been tasked with connecting to it all with Ruby on Rails. The biggest hurdle has been the fact that we use a multiple table inheritance model (per class hierarchy), which Rails definitely doesn't support out of the box. I've looked around for many solutions, and spent the last week or two finally trying to roll my own.

The following is what I have created, and I would like to contribute it to the community. Any feedback is welcome.

The project is stored in SVN here: http://svn.mojobojo.com/armi

It lacks unit tests, and only has inline documentation. Hopefully I can get around to that sometime, and I apologize in advance for the lack thereof.

I've tested it against Oracle and MySQL, but not PostreSQL. Unfortunately I don't think SQLite will work, since it has no way to do sequences as far as I can tell.

The biggest drawback is the number of queries performed, and I can't think of a way around that. The price of flattening multiple tables into a single object I suppose.

Enjoy.

Brian Jones http://www.mojobojo.com

We use what is known as "per class inheritance" here, which means a 1 object to many table relationship. ActiveRecord is closest to a "per concrete class" model, which is a 1 object to 1 table relationship. There is no way to use ActiveRecord's modeling convention, because there are already huge systems in place using a different and widely used convention.

The following is a good article explaining the three standard models that are used (not really sure what xcalia is, but good article):

http://www.xcalia.com/xdn/resources/articles/InheritanceStrategy/PickingTheRightInheritanceStrategy.jsp

Sorry about not going into specific detail, but I feel that this helps clarify the point.

I built this because I am in an environment where changing the db model is _not an option_.

Brian

Did you consider using any of Dr. Nic's Models?

Jason