Ответ 1
@stuff.each do |s|
...normal stuff...
if s == @stuff.last
...special stuff...
end
end
В вашем типичном каждом цикле в 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