Rails each_with_index降序索引中的顺序

时间:2013-08-27 12:39:18

标签: ruby-on-rails ruby

使用Rails 3.2和Ruby 1.9。当我们对@objects.each_with_index do |object, i|进行编码时,i通常以012开头。等

假设我们有@objects = [A, B, C, D, E],输出为:

<% @objects.each_with_index do |object, i| %>
  <%= i %> - <%= object %><br>
<% end %>

# output
0 - A
1 - B
2 - C

我想要这样做:

# output
2 - A
1 - B
0 - C

怎么做?

2 个答案:

答案 0 :(得分:8)

<%= @objects.length - 1 - i %> - <%= object %><br>

这将减去数组长度的索引,给出所需的输出。

您必须始终从长度中减去一个,因为长度为3的数组具有索引0,1,2

答案 1 :(得分:1)

这是怎么回事?

a = [:a,:b,:c]
a.each.with_index(-a.length+1) {|e,i| print -i,"  ",e,"\n"}

<强>输出:

2  a
1  b
0  c

你的人可能是这样的:

<% @objects.each.with_index(-@objects.length+1) do |object, i| %>
  <%= -i %> - <%= object %><br>
<% end %>