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?

20
demandé sur Stark_kids 2014-07-03 20:24:30

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)
22
répondu infused 2016-12-22 21:52:36

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)
4
répondu Santhosh 2014-07-03 16:36:44

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)

1
répondu Mohamed El Mahallawy 2014-07-03 16:37:51