2013-05-08 50 views
0

我需要遍歷從數組中的特定點開始的數組到最後。如何遍歷從一個特定的點到數組的結尾在Rails中

例如:

<% @posts[6.."To the very end of array"].each do |post| %> 
<%= render partial: 'posts/post', locals: {post: post} %> 
<% end %> 

這裏是什麼,我試圖完成一個更完整的例子。

<% @posts.each do |post| %> 
    <% if post == @posts.first && !params[:page] %> 
    <div class="hidden-phone hidden-tablet"> 
     <%= render partial: 'posts/main_post', locals: {post: post} %> 
    </div> 
    <div class="visible-phone visible-tablet"> 
     <%= render partial: 'posts/post', locals: {post: post} %> 
    </div> 
    <%= render partial: 'posts/add_post' %> 
    <% end %> 
<% end %> 

<% @posts[1..5].each do |post| %> 
    <%= render partial: 'posts/post', locals: {post: post} %> 
<% end %> 
<%= render partial: 'posts/add2_post' %> 

<% @posts[6..11].each do |post| %> 
    <%= render partial: 'posts/post', locals: {post: post} %> 
<% end %> 
<%= render partial: 'posts/add3_post' %> 

<% @posts[12.."To the very end of array"]each do |post| %> 
    <%= render partial: 'posts/post', locals: {post: post} %> 
<% end %> 

有沒有更高效的方法來實現這個目標?

感謝您的幫助。

回答

1

您可以使用數組的長度,就像這樣:

<% @posts[[email protected]].each do |post| %> 
    <%= render partial: 'posts/post', locals: {post: post} %> 
<% end %> 

從技術上講,你應該做length-1但可以乏味的類型,如果你提供比數組邊界大的數,Ruby無論如何都不會超越它。

+0

謝謝,這是我需要的。 – 2013-05-09 00:06:30

+0

不客氣!請務必將其標記爲任何未來訪問者的答案。 – MrDanA 2013-05-09 00:07:33