如何在 ruby 循环中停在特定范围

How to stop at a specific range in ruby loops

我这里有一段代码,它从数据库中为我的所有问题生成一个 link,但现在我有 10 个条目,这个循环将迭代 10 次。有没有办法在 4 的范围内停止迭代?

<table>
  <tr>
    <th>Question</th>
    <th>Button</th>
  </tr>
 </tr>
   <% @questions.each do |q| %>
  <tr>
    <td><%= q.question %></td>
    <td><%= link_to 'Question', show_url(q.id), method: :get %></td>
    <td><%= q.id %> Button</td>
    <% end %>
  </tr>
</table>

如有任何建议,我们将不胜感激! 谢谢

假设您从数据库或其他外部来源获取 @questions,例如在 rails 控制器中,您可以在获取数据时限制条目数。有多种方法可以做到这一点,具体取决于您的数据检索方法。

但是,如果您需要限制代码中 ERB 部分的问题,您可以这样写:

  <% @questions.take(4).each do |q| %>
    <tr>
      <td><%= q.question %></td>
      <td><%= link_to 'Question', show_url(q.id), method: :get %></td>
      <td><%= q.id %> Button</td>
    </tr>
  <% end %>

或者,您也可以这样写:

@questions[0..3]

@questions.first(4)

希望对您有所帮助。