这可能是非常基本的,但我想弄清楚如何在我的应用的帖子索引页面上显示帖子在rails中有多少评论。
评论belongs_to发布,并发布has_many评论
只是不确定如何在索引页面上显示每个帖子的评论数量。
提前致谢!
埃利奥特
答案 0 :(得分:5)
试试这个。
<%= post.comments.size %>
您可能也对pluralize方法感兴趣。
<%= pluralize(post.comments.size, 'comment') %>
这将输出“3条评论”或“1评论”等。
答案 1 :(得分:3)
我可能在这里错了,但你应该使用
<%= 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
将它们加载到内存中,因为无论如何它都需要在以后发生。
答案 2 :(得分:0)
您还应该在此处使用ActiveRecord的一些内置功能。 counter_cache。查看here