tout le monde, je suis tout nouveau avec Ruby on Rails et j'ai besoin de comprendre quelque chose. J'ai une variable d'instance (@users) et je dois boucler dans un fichier html.erb un nombre limité de fois. J'ai déjà utilisé ceci:
<% @users.each do |users| %>
<%= do something %>
<%end %>
Mais je dois le limiter à, disons, 10 fois. Que puis-je faire?
Si @users
contient plus d'éléments que vous ne souhaitez boucler, vous pouvez utiliser first
ou slice
:
Utilisation de first
<% @users.first(10).each do |users| %>
<%= do something %>
<% end %>
Utilisation de slice
<% @users.slice(0, 10).each do |users| %>
<%= do something %>
<% end %>
Cependant, si vous n'avez pas réellement besoin du reste des utilisateurs du tableau @users, vous ne devez en charger que le nombre nécessaire:
@users = User.limit(10)
Vous pourriez faire
<% for i in 0..9 do %>
<%= @users[i].name %>
<% end %>
Mais si vous n'avez besoin que de 10 utilisateurs dans la vue, vous pouvez le limiter dans le contrôleur lui-même
@users = User.limit(10)
Pourquoi ne limitez-vous pas les utilisateurs?
<%= @users.limit(10).each do |user| %>
...
<%end%>
Cela utiliserait toujours ActiveRecord pour que vous profitiez des fonctions AR. Vous pouvez également faire un certain nombre de choses telles que:
@users.first(10)
ou @users.last(10)