0

我可以用纯红宝石做到这一点

[3,2,1].each.with_index do |e, i|
  p e, i
end

3
0
2
1
1
2

但我不能用 Mongoid 做到这一点:

Model.each.with_index do |e, i|
  p e, i
end

它失败了

undefined method with_index for Array

如何在不使用此功能的情况下解决此问题:

Model.each_with_index

不允许设置起始索引

4

1 回答 1

0

在 Mongoid 3.1.3 中,with_index方法按预期工作。

puts Mongoid::VERSION

class User
  include Mongoid::Document
  field :name, type: String
end

User.create([
  { name: 'Harai' },
  { name: 'Sasaki' }
])

User.each.with_index do |u, i|
  puts "#{u.name}, #{i}"
end

上面的代码是这样工作的:

$ ruby main.rb
3.1.3
Harai, 0
Sasaki, 1

您的问题可能是因为您使用的是旧版本的 Mongoid。

于 2013-05-11T01:22:10.403 回答