在Rails中的每个循环中获取最后一个切片

时间:2015-11-20 12:10:46

标签: ruby-on-rails ruby

我在每个循环中都有以下切片:

<% @group.each_slice(3).with_index do |k, i| %>
    <% k.each do |k| %>
    <% end %>
<% end %>

如何确定我在最后一片?像这样:

<% k == @group.each_slice(3).last %>

2 个答案:

答案 0 :(得分:2)

预先计算@group.each_slice(3)(最好在控制器中执行)是个好主意

<% slices = @group.each_slice(3).to_a %>

您可以划分头部切片和最后切片的逻辑

<% slices[0..-2].with_index do |k, i| %>
<% end %>

<% slices[-1].with_index do |k, i| %>
<% end %>

或者您可以通过索引检查它是否是最后一个切片

<% slices.with_index do |k, i| %>
  <% if i == slices.size - 1 %>
    ...
  <% else %>
    ...
  <% end %>
<% end %>

答案 1 :(得分:1)

x = @group.each_slice(3).to_a
x.each_with_index do |k, i|
  puts 'last' if i == x.length-1
  k.each do |k|
    puts k
  end
end