如何在Ruby中分块数组

在Ruby 1.8.6中,我有一个数组,例如100,000个用户ID,每个ID都是一个int。 我想要在这些用户标识上执行一段代码,但是我想以大块的方式执行。 例如,我想每次处理它们100个。 我怎样才能轻松实现这个尽可能简单?

我可以做如下的事情,但可能有一个更简单的方法:

a = Array.new userids.each { |userid| a << userid if a.length == 100 # Process chunk a = Array.new end } unless a.empty? # Process chunk end 
 require 'enumerator' userids.each_slice(100) do |a| # do something with a end 

Rails有in_groups_of ,它在each_slice使用each_slice

 userids.in_groups_of(100){|group| //process group }