Как сказал Стивен ОДоннелл, «... зависит от размера коллекции». Однако вам также необходимо учитывать количество раз, которое вы будете выполнять этот расчет на страницу . Например, если вы работаете с приложением «Блог», а на странице записей / индекса показано 10 сообщений блога, каждое с «155 комментариями» внизу, это много вызовов базы данных, которых можно избежать с помощью счетчика кэша. *
Я предлагаю попробовать только с активным поиском записи, но добавьте опцию «включить». Предположим, что у Поста № 123 есть 50 комментариев.
p = Post.find_by_id(123)
p.comments.each do {|c| puts c } #Do something meaningful instead...
Будет сгенерировано 51 вызов базы данных, 1 для публикации и 1 для каждого комментария. Вместо этого вы можете сделать:
Post.find_by_id(123, :include => [:comments])
Теперь он будет автоматически запрашивать комментарии при поиске сообщения, объединяя 51 запрос в 1.