# Iterating over a collection, three at a time

**URL:** <https://www.ruby-forum.com/t/iterating-over-a-collection-three-at-a-time/131508>\
**Category:** Rails\
**Created:** [March 10, 2008, 8:43pm UTC](https://www.ruby-forum.com/t/iterating-over-a-collection-three-at-a-time/131508 "2008-03-10T20:43:39Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![danielb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c57346/32.png) [@danielb](https://www.ruby-forum.com/u/danielb)\
**Post date:** [March 10, 2008, 8:43pm UTC](https://www.ruby-forum.com/t/iterating-over-a-collection-three-at-a-time/131508/1 "2008-03-10T20:43:39Z")

</div>

Hi all,

The subject sums up what I want to do in a nutshell. I have a collection  
of ActiveRecord objects (@galleries), and I want to generate from it  
another collection of arrays, each three elements long. This is simply  
so I can display preview pictures from all my @galleries in a three  
column table.

What I want to end up with is something like this that I can iterate  
over to build my table:

@collected -\> [[gallery1, gallery2, gallery3],  
[gallery4, gallery5, gallery6]]

etc

I cannot for the life of me figure out a clean way to do it. Any  
hints or prods in the right direction would be great 😉

Many thanks,

Dan

---

<div class="post-metadata">

**Author:** ![danielb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c57346/32.png) [@danielb](https://www.ruby-forum.com/u/danielb)\
**Post date:** [March 10, 2008, 8:55pm UTC](https://www.ruby-forum.com/t/iterating-over-a-collection-three-at-a-time/131508/2 "2008-03-10T20:55:08Z")

</div>

On 3/10/08, Daniel B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> What I want to end up with is something like this that I can iterate  
> over to build my table:
> 
> @collected → [[gallery1, gallery2, gallery3],  
> [gallery4, gallery5, gallery6]]

Have a look at in\_groups\_of:

[http://api.rubyonrails.com/classes/ActiveSupport/CoreExtensions/Array/Grouping.html#M000636](http://api.rubyonrails.com/classes/ActiveSupport/CoreExtensions/Array/Grouping.html#M000636)

–  
Greg D.  
[http://destiney.com/](http://destiney.com/)

---

<div class="post-metadata">

**Author:** ![danielb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c57346/32.png) [@danielb](https://www.ruby-forum.com/u/danielb)\
**Post date:** [March 10, 2008, 9:28pm UTC](https://www.ruby-forum.com/t/iterating-over-a-collection-three-at-a-time/131508/3 "2008-03-10T21:28:14Z")

</div>

HI Dan

Did you try “in\_groups\_of”  
[http://www.noobkit.com/show/ruby/rails/rails-edge/activesupport-edge/activesupport/coreextensions/array/grouping/in\_groups\_of.html](http://www.noobkit.com/show/ruby/rails/rails-edge/activesupport-edge/activesupport/coreextensions/array/grouping/in_groups_of.html)

---

<div class="post-metadata">

**Author:** ![danielb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c57346/32.png) [@danielb](https://www.ruby-forum.com/u/danielb)\
**Post date:** [March 11, 2008, 12:01am UTC](https://www.ruby-forum.com/t/iterating-over-a-collection-three-at-a-time/131508/4 "2008-03-11T00:01:01Z")

</div>

On Mon, Mar 10, 2008 at 04:26:50PM -0400, R T Ealey wrote:

> HI Dan
> 
> Did you try “in\_groups\_of”  
> [http://www.noobkit.com/show/ruby/rails/rails-edge/activesupport-edge/](http://www.noobkit.com/show/ruby/rails/rails-edge/activesupport-edge/)  
> activesupport/coreextensions/array/grouping/in\_groups\_of.html

Aha! That looks just the thing! Thanks (to Greg, too) for the pointer.  
I should have known Rails could do it for me!

Cheers,

Dan
