Когда я хватаю какую-то иерархическую структуру ActiveRecord, кажется, что база данных содержит довольно много обращений. Я улучшил это, используя опцию: include, чтобы выделить как можно большую часть структуры. Несмотря на это, кажется, что ActiveRecord не отображает взаимные стороны отношения (например, parent-child) с уникальными ссылками на запись. То есть мы получаем навигационную структуру ActiveRecord, но, насколько мне известно, она не гарантирует уникальную копию данной записи.
node = Node.find(1, :include => {:document => :node})
node.object_id #A
node.document.node.object_id #B although I expect/desire A
неизбежно в ActiveRecord? Перешли ли другие на альтернативные ORM из-за подобных недостатков? (Не поймите меня неправильно: ActiveRecord - отличный инструмент. Но все инструменты имеют свои сильные и слабые стороны.)
Скажем, я должен был написать свой собственный запрос SQL (это может быть даже сохраненный процесс), возвращающий несколько наборов результатов (по одному на таблицу), содержащих все соответствующие данные для моей иерархии ActiveRecord. Есть ли безболезненный способ, которым я могу явным образом сопоставить ассоциации без ActiveRecord, принимающего мои явные отображения за попытку создания новых ассоциаций?