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.
5f94b9b346c2aa648a80bc259978e5bc?d=identicon&s=25 Colin Law (Guest)
on 2009-04-30 11: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.
1eeb51f806a2219fc2e107cb62396e58?d=identicon&s=25 David Knorr (Guest)
on 2009-04-30 12:34
(Received via mailing list)
On Apr 30, 11:06 am, Colin Law <clan...@googlemail.com> 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 Knorr
http://twitter.com/perplect
5f94b9b346c2aa648a80bc259978e5bc?d=identicon&s=25 Colin Law (Guest)
on 2009-04-30 12:41
(Received via mailing list)
2009/4/30 David Knorr <perplect@gmail.com>

> > 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.