Boucle dans Ruby on Rails html.dossier erb
tout le monde Je suis nouvelle avec Ruby on Rails et j'ai besoin de comprendre quelque chose. J'ai une variable d'instance (@users) et j'ai besoin de la boucler à l'intérieur d'un html.le dossier de l'erb est limité plusieurs fois. J'ai déjà utilisé ceci:
<% @users.each do |users| %>
<%= do something %>
<%end %>
mais je dois me limiter à, disons, 10 fois. Que puis-je faire?
3 réponses
Si @users
plus d'éléments que vous le souhaitez en boucle, vous pouvez utiliser first
ou slice
:
en utilisant first
<% @users.first(10).each do |users| %>
<%= do something %>
<% end %>
en utilisant slice
<% @users.slice(0, 10).each do |users| %>
<%= do something %>
<% end %>
cependant, si vous n'avez pas réellement besoin du reste des utilisateurs dans le tableau @users, vous ne devez en charger qu'autant que vous avez besoin:
@users = User.limit(10)
Vous pourriez faire
<% for i in 0..9 do %>
<%= @users[i].name %>
<% end %>
Mais si vous avez besoin de seulement 10 utilisateurs dans la vue, vous pouvez limiter dans le contrôleur lui-même
@users = User.limit(10)
pourquoi ne pas limiter les utilisateurs?
<%= @users.limit(10).each do |user| %>
...
<%end%>
qui utilise encore ActiveRecord donc vous bénéficiez des fonctions AR. Vous pouvez également faire un certain nombre de choses comme:
@users.first(10)
ou @users.last(10)