如何在Ruby中显示全局变量的内容

时间:2018-04-21 04:13:03

标签: html ruby-on-rails ruby variables counter

我为一个班写了这个:

<% 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不是我的强项,老师也不清楚如何实现这一目标。我愿意接受替代方案。

1 个答案:

答案 0 :(得分:0)

不要使用全局变量,顾名思义,它们是全局的,这意味着它可能是其他请求/线程的更新。

如果您要查找给定@course的评论总数,您只需拨打@ course.comments.count即可。这应该会给你你想要的总数。