I have created a plugin (my first) which monkey patches the
functionality submitted in http://dev.rubyonrails.org/ticket/7147 into
ActiveRecord, with several modifications.
It has been modified to use a new naming convention for :include
relationships.
Instead of using t[table_index]_r[column_index] I am now using a more
human readable convention of the form
table_name[index]__column_name.
Also, One of our requirements was the ability to extract an
ActiveRecord object hierarchy from an arbitrary (albeit following the
naming convention) result set. This is now possible through the
extract_objects(rows) method. We had several find methods which had to
be converted to PL/SQL functions for performance reasons. We can now
use connection.select_all to grab a result set, and run it through
extract objects to get a friendly active record collection (works with
nested includes as well)
I have not written comprehensives tests for it yet (i know, bad!) But
the source could be useful so I have decided to release it on
RubyForge at http://rubyforge.org/frs/?group_id=4193
It has been working well thus far in my application, YMMV. Please
give me feedback if you find any problems or have improvements.