Wenn ich T-SQL (oder eine gespeicherte Prozedur) habe, die Datensätze aus mehreren Tabellen zurückgibt (vielleicht mit DBI), gibt es eine Möglichkeit für mich, die ActiveRecord-Modelle und ihre Verbindungen manuell zu instanziieren? Offensichtlich geht es mir hier um die Leistung der Datenbank. Ich möchte in der Lage sein, meine eigene Objekthierarchie (Modelle und ihre Beziehungen) aufzubauen, aber wenn ich fertig bin, möchte ich, dass sich jedes Modell normal verhält. Das heißt, ich hoffe, dass dies ohne einen Hack möglich ist, der dazu führen könnte, dass sich meine Struktur seltsam verhält.
EDITAR:
Dies ist ein wenig konstruiert, aber es zeigt, wie eine Abfrage Daten aus n Ebenen zurückgeben kann (wobei "n" nur praktische Grenzen hat) und alles in einem einzigen Aufruf an die Datenbank zurückgibt:
SELECT * FROM customers
WHERE id = 1;
SELECT * FROM orders
WHERE customer_id = 1;
SELECT * FROM lineitems
WHERE order_id IN (
SELECT id FROM orders
WHERE customer_id = 1
);
Wenn ich dann alle Datensätze habe, kann ich die Assoziationen einfach selbst zuordnen. Das Problem bei der Durchführung dieser über ActiveRecord und :include ist, dass es die Datenbank mehrere Male statt nur einmal getroffen wird - was mehr anstrengend ist, wie "n" erhöht.