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 に答える