0

我需要从数组中的特定点开始遍历数组直到它的最后。

例如:

<% @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 %>

有没有更有效的方法来实现这一点?

谢谢你的帮助。

4

1 回答 1

1

您可以使用数组的长度,如下所示:

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

从技术上讲,您应该这样做length-1,但是键入起来可能很乏味,并且如果您提供的数字大于数组的范围,Ruby 无论如何都不会超过它。

于 2013-05-08T23:18:49.300 回答