2012-09-21 20 views
0

我有以下要輸出前六位用戶的位置,如果有六位以上的用戶,請返回'...'。我如何分解這個if和each語句?

我該怎麼做?

<% users.each_with_index do |x, key| %> 
    <% if key <= 5 %> 
    <%=x.name %> 
    <% else %> 
     ... <% next %> 
    <% end %> 
<% end %> 

回答

3

接下來是什麼?接下來將進入下一個迭代。如果你想退出循環,你需要使用break。

<% 
    users.each_with_index do |user, key| 
    if key > 5 
     concat('...') 
     break 
    end 
    concat(user.name) 
    end 
%> 

你也可以

<%= users.take(6).map(&:name).join %> 
<%= '...' if users.size > 6 %> 
+0

如果指數是幾千年後,這疊代所有的人?我想要一種方式來輸出'...'並跳出迭代。 – timpone

+0

編輯我的答案。 – oldergod

+0

cool,thx for answers – timpone