Подтвердить что ты не робот

Петля в файле Ruby on Rails html.erb

все Я новичок в Ruby on Rails, и мне нужно что-то понимать. У меня есть переменная экземпляра (@users), и мне нужно перекрыть ее внутри файла html.erb ограниченным количеством раз. Я уже использовал это:

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

Но мне нужно ограничить его, допустим, 10 раз. Что я могу сделать?

4b9b3361

Ответ 1

Если @users имеет больше элементов, чем вы хотите перебрать, вы можете использовать first или slice:

Используя 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)

Ответ 2

Вы могли бы сделать

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

Но если вам нужно только 10 пользователей в представлении, вы можете ограничить его в самом контроллере

@users = User.limit(10)

Ответ 3

Почему вы не ограничиваете пользователей?

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

Это все равно будет использовать ActiveRecord, чтобы вы могли воспользоваться функциями AR. Вы также можете сделать несколько вещей, например:

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