fixtures in edge and polymorphic associations

Hello,

I've been using the fixture enhancements in edge rails to manage associations between objects. It has been working great except for polymorphic associations. I saw that they weren't supported in Rathole.

I read some post that the id's generated by the fixtures are constant so I just pulled the generated id's and manually set the polymorphic id and the polymorphic type in the fixture as well.

This worked great locally on my machine, but when I moved the application to a staging are the generated id's were different, breaking all of the associations.

Anyone have any better luck with another approach?

Hi Dan,

You can insert the generated ID for any fixture using ERB:

   foo:      bar_id: <%= Fixtures.identify(:the_target_fixture_label) %>

As far as polymorphic assoiations go, take a look at this patch: http://dev.rubyonrails.org/ticket/10183

~ j.

You actually don't need the patch to support polymorphic relationships.

The patch suggests this:

# instead of saying foo:   pet_id: 1 # a pet fixture labelled "horace"   pet_type: Ferret

# you can say foo:   pet: horace (Ferret)

But in fact you can do this:

foo:   pet: horace   pet_type: Ferret

This is good enough for me.

Tiago Macedo

John Barnette wrote:

Thanks for the replies.

I've been trying this syntax

foo:   pet: horace   pet_type: Ferret

and the relationship isn't resolving. This is in edge and I don't need a patch?

It's working for me in edge, as long as I don't specify ids for fixtures (currently this will disable foxy fixtures).

There is a patch in the Rails Trac that allows you to specify ids and still use foxy fixtures: http://dev.rubyonrails.org/ticket/10004/

As I need this patch and don't want to use a monkey patched version of Rails, I turned this into a plugin: http://portugueserb.rubyforge.org/svn/plugins/mixed_fixtures/

Tiago Macedo

Dan wrote: