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

问题描述 投票:28回答:3

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

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

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

html ruby-on-rails ruby loops erb
3个回答
33
投票

如果@users的元素多于要循环的元素,则可以使用firstslice

使用first

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

使用slice

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

但是,如果您实际上并不需要@users数组中的其余用户,则只能使用limit来加载所需的数量:

@users = User.limit(10)

5
投票

您可以做

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

但是如果视图中仅需要10个用户,则可以将其限制在控制器本身中

@users = User.limit(10)

1
投票

您为什么不限制用户?

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

那仍然会使用ActiveRecord,因此您可以获得AR函数的好处。您也可以做很多事情,例如:

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

© www.soinside.com 2019 - 2024. All rights reserved.