Where to put helper fns for fixtures?

I’m writing a fixture in test/fixtures/parrots_model.yml, and I’m
happily using ERB to flesh out my fixture. Suddenly, I realize that I
need a helper function to call from my erb code, such as:

polly:
subtype: parakeet
weight_kg: <%= ounces_to_kg(22.3) %>

alex:
subtype: african gray
weight_kg: <%= ounces_to_kg(170.3) %>

Where’s the right place to stash the “ounces_to_kg()” function so that
it’s available when I rake db:load:fixtures? (And does the answer
change if its a method specific to the parrot model?)

tia.

Fearless F. wrote:

I’m writing a fixture in test/fixtures/parrots_model.yml, and I’m
happily using ERB to flesh out my fixture. Suddenly, I realize that I
need a helper function to call from my erb code, such as:

polly:
subtype: parakeet
weight_kg: <%= ounces_to_kg(22.3) %>

alex:
subtype: african gray
weight_kg: <%= ounces_to_kg(170.3) %>

Where’s the right place to stash the “ounces_to_kg()” function so that
it’s available when I rake db:load:fixtures?

Nowhere, because IMHO it’s never right to use Rails fixtures. Use
factories instead – I’m fond of Machinist, but there are other
solutions out there. This will solve your problem and also give you
many other advantages.

Fixtures are a horribly broken feature of Rails. Don’t bother with
them.

(And does the answer
change if its a method specific to the parrot model?)

tia.

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

Marnen Laibow-Koser wrote:

…snip…
Where’s the right place to stash the “ounces_to_kg()” function so that
it’s available when I rake db:load:fixtures?

Nowhere, because IMHO it’s never right to use Rails fixtures. Use
factories instead – I’m fond of Machinist, but there are other
solutions out there. This will solve your problem and also give you
many other advantages.

Fixtures are a horribly broken feature of Rails. Don’t bother with
them.

Thanks Marnen – very helpful.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs