Рассмотрим типичную реляционную структуру:
Answer has many comments. comments belongs to a user, and have many likers
answers.to_json(:include => {:comments => {:include => :user, :likers}})
Если я вызову to_json , он будет выполнять поиск в базе данных один за другим для отдельного пользователя в отдельных комментариях.
Гораздо более эффективным решением было бы поместить требуемые идентификаторы для каждого типа в массив, выполнить 3 вызова базы данных для их извлечения, поместить их в хэш и создать json в соответствии с хэшем.
Это кажется довольно распространенным вариантом использования. Я думаю написать для этого свою собственную рекурсивную функцию, но если кто-нибудь может указать мне на что-то, что уже было сделано, это будет здорово!
** я использую mongoid/mongodb, я не уверен, работает ли он так же в активной записи.