Как определить последний объект в каждом цикле? В вашем типичном каждом цикле в Rails, как определить последний объект, потому что я хочу сделать что-то другое, чем остальные объекты. <% @stuff.each do |thing| %> <% end %> Ответ 1 @stuff.each do |s| ...normal stuff... if s == @stuff.last ...special stuff... end end Ответ 2 Интересный вопрос. Используйте each_with_index. len = @stuff.length @stuff.each_with_index do |x, index| # should be index + 1 if index+1 == len # do something end end Ответ 3 <% @stuff[0...-1].each do |thing| %> <%= thing %> <% end %> <%= @stuff.last %> Ответ 4 Несколько наивный способ справиться с этим, но: <% @stuff.each_with_index do |thing, i| %> <% if (i + 1) == @stuff.length %> ... <% else %> ... <% end %> <% end %> Ответ 5 Более предпочтительной альтернативой может быть использование @stuff[1..-1].each do |thing| end @stuff[-1].do_something_else
Ответ 2 Интересный вопрос. Используйте each_with_index. len = @stuff.length @stuff.each_with_index do |x, index| # should be index + 1 if index+1 == len # do something end end
Ответ 4 Несколько наивный способ справиться с этим, но: <% @stuff.each_with_index do |thing, i| %> <% if (i + 1) == @stuff.length %> ... <% else %> ... <% end %> <% end %>
Ответ 5 Более предпочтительной альтернативой может быть использование @stuff[1..-1].each do |thing| end @stuff[-1].do_something_else