> (1..10).to_a.in_groups(3, false) {|group| p group} [1, 2, 3, 4] [5, 6, 7] [8, 9, 10] => [[1, 2, 3, 4], [5, 6, 7], [8, 9, 10]] Rubyのeach_sliceなどで簡単にできるかと思ったが、なかなかできなくて調べたらRailsにあった。 第2引数で指定したもので、余った枠が埋められる(デフォルトの省略時はnil) false指定だと余った枠を埋めない Rubyのeach_sliceは違う > (1..10).each_slice(3).to_a => [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]] > (1..10).each_slice(4).to_a => [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10]