# How to iterate fixtures

**URL:** <https://www.ruby-forum.com/t/how-to-iterate-fixtures/166870>\
**Category:** Rails\
**Created:** [April 30, 2009, 11:07am UTC](https://www.ruby-forum.com/t/how-to-iterate-fixtures/166870 "2009-04-30T11:07:11Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![colinloretz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/a698b9/32.png) [@colinloretz](https://www.ruby-forum.com/u/colinloretz)\
**Post date:** [April 30, 2009, 11:07am UTC](https://www.ruby-forum.com/t/how-to-iterate-fixtures/166870/1 "2009-04-30T11:07:11Z")

</div>

I have fixture data in froglets.yml

In my functional test I specify fixtures :froglets

I can then access the individual fixture values by froglets(:froglet1)  
for  
example.

I want to check the data in my index view so I want to iterate through  
the  
froglets checking that the data is correctly formatted using something  
of  
the form  
froglets.each do |froglet| …  
but this does not work as the froglets object appears to be an empty  
array.

I realise I can do this by iterating the database records instead but  
this  
does not seem the right way to do it.

I have googled without success.

Suggestions will be much appreciated.

---

<div class="post-metadata">

**Author:** ![colinloretz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/a698b9/32.png) [@colinloretz](https://www.ruby-forum.com/u/colinloretz)\
**Post date:** [April 30, 2009, 12:34pm UTC](https://www.ruby-forum.com/t/how-to-iterate-fixtures/166870/2 "2009-04-30T12:34:32Z")

</div>

On Apr 30, 11:06 am, Colin L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> froglets.each do |froglet| …  
> but this does not work as the froglets object appears to be an empty array.
> 
> I realise I can do this by iterating the database records instead but this  
> does not seem the right way to do it.
> 
> I have googled without success.
> 
> Suggestions will be much appreciated.

I understand your skeptism, but eventually looping through the  
database records _is_ the right way:

Froglet.find(:all).each do |froglet|

# …

end

Looping through the fixtures only is not possible. Even though it was,  
it would be a bad idea since some of the records might have changed,  
new records might have been added and so on. You should always be sure  
to use the latest state of the database. 🙂

–  
Best regards,  
David K.  
[http://twitter.com/perplect](http://twitter.com/perplect)

---

<div class="post-metadata">

**Author:** ![colinloretz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/a698b9/32.png) [@colinloretz](https://www.ruby-forum.com/u/colinloretz)\
**Post date:** [April 30, 2009, 12:41pm UTC](https://www.ruby-forum.com/t/how-to-iterate-fixtures/166870/3 "2009-04-30T12:41:34Z")

</div>

2009/4/30 David K. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> > example.  
> > this
> 
> # …
> 
> end
> 
> Looping through the fixtures only is not possible. Even though it was,  
> it would be a bad idea since some of the records might have changed,  
> new records might have been added and so on. You should always be sure  
> to use the latest state of the database. 🙂

I am happy to accept that I must do this, but I am not sure of the  
logic.  
Since this is running in a test then if the database has changed when  
the  
test is not expecting it then the test should fail.  
Colin
