Посчитайте значение записей, которые принадлежат другой модели в рельсах - PullRequest
0 голосов
/ 20 августа 2009

Это, вероятно, довольно просто, но я пытаюсь выяснить, как показать, сколько комментариев у поста в рельсах, на странице индекса моего приложения.

комментарии принадлежат к посту, а к сообщению has_many комментариев

Просто не уверен, как отобразить на странице индекса количество комментариев к каждому сообщению.

Заранее спасибо!

Эллиот

Ответы [ 3 ]

5 голосов
/ 20 августа 2009

Попробуйте это.

<%= post.comments.size %>

Вас также может заинтересовать метод множественное число .

<%= pluralize(post.comments.size, 'comment') %>

Будет выведено «3 комментария» или «1 комментарий» и т. Д.

3 голосов
/ 20 августа 2009

Я могу ошибаться, но вы должны использовать

<%= post.comments.count %> вместо size.

ActiveRecord знает, что 'count' - это специальный метод, и превратит его в SELECT count(id) from comments where post_id = x (что вам нужно).

size однако, это не специальный метод, и ActiveRecord загрузит все комментарии в массив в памяти (SELECT * from comments where post_id = x, а затем скажет вам, как долго этот массив, который может быть ненужным - если вы Если вы будете проходить по массиву комментариев дальше вниз по странице, то вы можете использовать size для их загрузки в память, потому что это все равно должно произойти позже.

0 голосов
/ 20 августа 2009

Вы также должны использовать некоторые встроенные функции ActiveRecord здесь. Counter_cache. Проверьте это здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...