在Ruby中将每个_与_索引迭代器一起使用时,值过多
我在Ruby中有一个结果集(在Ruby中将每个_与_索引迭代器一起使用时,值过多,ruby,Ruby,我在Ruby中有一个结果集(Mongoid::Criteria),它是Mongoid查询的结果。在为这个结果集的迭代输出添加一些格式时,我有时会得到额外的内容 例如: widgets = Things.where(type: 'widget') 说小部件的数量是20,如果我这样做: widgets.each_with_index do |sprocket, index| puts "#{sprocket.name} is number #{index} in the list." .
Mongoid::Criteria
),它是Mongoid
查询的结果。在为这个结果集的迭代输出添加一些格式时,我有时会得到额外的内容
例如:
widgets = Things.where(type: 'widget')
说小部件的数量是20,如果我这样做:
widgets.each_with_index do |sprocket, index|
puts "#{sprocket.name} is number #{index} in the list."
...lots of code...
yield sprocket
end
我将返回22行,其中20个链轮中的两个被复制。这个循环在一个更大的循环中。当我重新运行代码时,它不会每次都发生,也不会每次都重复相同的链轮
奇怪的是,如果你这样做:
widgets.each do |sprocket, index|
puts "#{sprocket.name} is number #{index} in the list."
end
我有一张20个项目的清单
我已经查看了我的数据,但找不到解释这种行为的模式
为什么每个带有索引的
\u有时返回更多的项目?在中发生了什么…大量的代码…
?您确定该代码没有导致此行为吗?