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? partial: <% div_for post do %> <p><strong><%= link_to_unless_current h(post.title), post %></strong> - <font size="1">created by <%= post.user %> <%= time_ago_in_words (post.created_at) %> ago </font><br /> <%= post.body %></p> <% end %> Many thanks! Mark
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. -Gourav On Sep 18, 10:58 am, Mark <polluxop...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> 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? > > partial: > > <% div_for post do %> > <p><strong><%= link_to_unless_current h(post.title), post %></strong> > - > <font size="1">created by <%= post.user %> <%= time_ago_in_words > (post.created_at) %> ago > </font><br /> > <%= post.body %></p> > <% end %> > > Many thanks! > Mark
That did it. I think I''ve been staring at the monitor too long... :-) On Sep 18, 2:34 am, Gourav <gouravtiwar...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> 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. > > -Gourav > > On Sep 18, 10:58 am, Mark <polluxop...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > 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? > > > partial: > > > <% div_for post do %> > > <p><strong><%= link_to_unless_current h(post.title), post %></strong> > > - > > <font size="1">created by <%= post.user %> <%= time_ago_in_words > > (post.created_at) %> ago > > </font><br /> > > <%= post.body %></p> > > <% end %> > > > Many thanks! > > Mark
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. On Sep 18, 8:05 am, Mark <polluxop...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> That did it. I think I''ve been staring at the monitor too > long... :-) > > On Sep 18, 2:34 am, Gourav <gouravtiwar...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > 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. > > > -Gourav > > > On Sep 18, 10:58 am, Mark <polluxop...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > 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? > > > > partial: > > > > <% div_for post do %> > > > <p><strong><%= link_to_unless_current h(post.title), post %></strong> > > > - > > > <font size="1">created by <%= post.user %> <%= time_ago_in_words > > > (post.created_at) %> ago > > > </font><br /> > > > <%= post.body %></p> > > > <% end %> > > > > Many thanks! > > > Mark