在Rails中典型的每个循环中,如何确定最后一个对象,因为我想做一些与其他对象不同的东西。
<% @stuff.each do |thing| %>
<% end %>
答案 0 :(得分:61)
@stuff.each do |s|
...normal stuff...
if s == @stuff.last
...special stuff...
end
end
答案 1 :(得分:28)
有趣的问题。使用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
答案 2 :(得分:6)
<% @stuff[0...-1].each do |thing| %>
<%= thing %>
<% end %>
<%= @stuff.last %>
答案 3 :(得分:2)
处理它的方式有点天真,但是:
<% @stuff.each_with_index do |thing, i| %>
<% if (i + 1) == @stuff.length %>
...
<% else %>
...
<% end %>
<% end %>
答案 4 :(得分:1)
使用
的更多lispy替代方案@stuff[1..-1].each do |thing|
end
@stuff[-1].do_something_else