Ваш вопрос немного расплывчатый. Я не могу сказать, хотите ли вы прекратить обработку массива после первого x или нет.
Если вы просто хотите остановиться после первых x элементов или просто ищете 2-й и 3-й элементы, решение состоит в том, чтобы использовать срез.
Пример: только первые 3:
@user[0,3].each do |user|
... # only executed for user = @user[0],user = @user[1] and user = @user[3]
end
Пример: только второй и третий:
@user[1,2].each do |user|
... #only only executed for user = @user[1] and user = @user[3]
end
А вот более конкретный ответ на ваш вопрос с использованием этих новых концепций и content_tag , чтобы программно определить класс элемента списка. Если вы собираетесь делать это часто, это отличный кандидат на роль.
<% first = true %>
<% @user[0,2].each do |user| %>
<% content_tag :li,
:class => first ? "class-for-first-item" : "class-for-2nd-&-3rd" do %>
<%= link_to user.username, user %>
<% end %>
<% first = false %>
<% end %>
<!-- Now to do the rest of them:-->
<% @user[3,-1].each do |user| %>
<% content_tag :li, :class => "class-for-rest" do %>
<%= link_to user.username, user %>
<% end %>
<% end %>