Counting blog comments

I have “posts” and “comments”, and I’d like to display the number of
comments each post has (and display 0 if none). In the index Posts
view, I display a list of posts and their authors using the below
partial. What I can’t figure out is how to limit the comment count to
the post listing (my attempts so far show the total number of comments
in the database). How do I limit the count?


<% div_for post do %>

<%= link_to_unless_current h(post.title), post %>

<font size="1">created by <%= post.user %> <%= time_ago_in_words

(post.created_at) %> ago

<%= post.body %>

<% end %>

Many thanks!

I think, you must have Post-'has many"-Comments relationship

So, to find number of comments:
post.comments.count will give you total number of comments of a post.


That did it. I think I’ve been staring at the monitor too
long… :slight_smile:

Depending on performance needs, you can also look at the counter_cache
option for the ActiveRecord association.

Your current approach has to query the child table to get the count,
which could be a performance hit on a big site.
Don’t prematurely optimize though - it’s just good to know about other
options in case the need arises.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs