Как вы обычно определяете последний объект в вашем типичном цикле в Rails, потому что я хочу сделать что-то другое, чем остальные объекты.
<% @stuff.each do |thing| %> <% end %>
@stuff.each do |s| ...normal stuff... if s == @stuff.last ...special stuff... end end
Интересный вопрос. Используйте 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
<% @stuff[0...-1].each do |thing| %> <%= thing %> <% end %> <%= @stuff.last %>
Несколько наивный способ справиться с этим, но:
<% @stuff.each_with_index do |thing, i| %> <% if (i + 1) == @stuff.length %> ... <% else %> ... <% end %> <% end %>
Более легкая альтернатива - использовать
@stuff[1..-1].each do |thing| end @stuff[-1].do_something_else