我为一个班写了这个:
<% if @course.comments.exists? %>
<h2>Ratings</h2>
<% $total = 0 %>
<% @course.comments.each do |comment| %>
<p>
<strong>Commenter:</strong>
<%= comment.commenter %>
</p>
<p>
<strong>Score:</strong>
<%= comment.score %>
</p>
<p>
<strong>Comment:</strong>
<%= comment.comment %>
</p>
<p>
<strong>Words in Comment:</strong>
<%= comment.comment.length %>
</p>
<% $total += 1%>
<%= link_to 'Destroy Rating', [comment.course, comment],
method: :delete,
data: { confirm: 'Are you sure?' } %>
</p>
<% end %>
<% else %>
<h2>No ratings available</h2>
<% end %>
<p>
<strong>Total Comments</strong>
<%= print $total %>
</p>
我尝试过put和print但屏幕上没有显示任何内容。我需要计算<% @course.comments.each do |comment| %>
行的每次迭代。 Ruby不是我的强项,老师也不清楚如何实现这一目标。我愿意接受替代方案。
答案 0 :(得分:0)
不要使用全局变量,顾名思义,它们是全局的,这意味着它可能是其他请求/线程的更新。
如果您要查找给定@course的评论总数,您只需拨打@ course.comments.count即可。这应该会给你你想要的总数。