У меня есть приложение с пользователями, сообщениями и комментариями. Пользователи has_many Posts, Posts has_many Комментарии и комментарии принадлежат пользователям и сообщениям.Эффективность Rails при поиске ассоциаций
В моем шаблоне вида я зацикливание над Комментарии, как это, чтобы получить имя пользователя комментатора:
User.find(comment.user_id).name
Насколько эффективно это, если я делаю это для каждого комментарий на сообщение? Я мог представить, что, возможно, быстрее сохранить имя пользователя в отдельной строке в таблице комментариев, но дублирование данных кажется просто неправильным.
Я являюсь параноиком и является ActiveRecord, делающим магию кеширования, или есть лучший способ сделать что-то подобное?
поэтому, если я ограничу сообщения, возвращаемые (скажем, 10), '@ comments' будет только захватывать пользователей для 10 возвращенных сообщений? – DeanAlexRainier
@daanVOS Я обновил свой пример. Это загружает десять сообщений и включает комментарии и комментарии пользователя с нетерпением. – lebreeze
@daanVOS таким образом, приложение, скорее всего, сделает один SQL-запрос для сообщений, один для комментариев и один для пользователей, которые сделали эти комментарии, независимо от количества комментариев. – lebreeze