在Ruby on Rails html.erb文件中循环

时间:2014-07-03 16:24:31

标签: html ruby-on-rails ruby loops erb

大家 我是Ruby on Rails的新手,我需要了解一些东西。我有一个实例变量(@users),我需要在html.erb文件中循环它限制次数。 我已经用过了:

<% @users.each do |users| %>
   <%= do something %>
<%end %>

但我需要将其限制为10次。我该怎么办?

3 个答案:

答案 0 :(得分:30)

如果@users包含的元素多于您希望循环的元素,则可以使用firstslice

使用first

<% @users.first(10).each do |users| %>
  <%= do something %>
<% end %>

使用slice

<% @users.slice(0, 10).each do |users| %>
  <%= do something %>
<% end %>

但是,如果您实际上不需要@users数组中的其他用户,则只应加载所需数量的用户:

@users = User.limit(10)

答案 1 :(得分:4)

你可以做到

<% for i in 0..9 do %>
  <%= @users[i].name %>
<% end %>

但是如果你在视图中只需要10个用户,那么你可以在控制器本身中限制它

@users = User.limit(10)

答案 2 :(得分:1)

为什么不限制用户?

<%= @users.limit(10).each do |user| %>
 ...
<%end%>

仍然使用ActiveRecord,因此您可以获得AR功能的好处。你也可以做很多事情,例如:

@users.first(10)@users.last(10)