Forum: Ruby on Rails How to iterate fixtures

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Colin L. (Guest)
on 2009-04-30 13:07
(Received via mailing list)
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.
David K. (Guest)
on 2009-04-30 14:34
(Received via mailing list)
On Apr 30, 11:06 am, Colin L. <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
Colin L. (Guest)
on 2009-04-30 14:41
(Received via mailing list)
2009/4/30 David K. <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
This topic is locked and can not be replied to.