Flexible Fixtures in Rails 2

By | | Ruby on Rails Tutorials & Articles

3

As Matt Magain pointed out yesterday, Rails 2.0 is now gold! Not a lot has changed feature wise from the PR (makes sense – features were frozen at that point), although it seems that the new improvements to fixtures managed to slip in to the final version.

Rather than having to map foreign keys in your fixtures using id numbers, you can use fixture names, which makes life a whole lot easier. So you can now write:

users.yml

joe_blogs:
  id: 1
  first_name: Joe
  last_name: Blogs
mary_smith:
  id: 2
  first_name: Mary
  last_name: Smith

websites.yml

website_1
  id: 1
  user: joe_blogs
  url: "http://www.joeblogs.com"
website_2
  id: 2
  user: mary_smith
  url: "http://mary.smith.id.au"

which obviously makes a lot more sense to a human reading it, especially when you have a large number of fixtures across many models.

Let me join Matt in congratulating the Rails core dev team for achieving this milestone – roll on Rails 3!

Written By:

Myles Eftos

Myles Eftos is a Perth-based web developer that jumped on the Rails express and never looked back. He is the event co-ordinator for the Australian Web Industry Assocation which explains why most of their events are at the pub near his house.

 

{ 3 comments }

hadrien December 14, 2007 at 2:31 am

this feature have been available for a long time in the symfony php framework, which was inspired from rails.

Philippe Rathe December 13, 2007 at 2:46 am

And we can say thanks to John Barnette. He is the author of the previous plugin Rathole (http://svn.geeksomnia.com/rathole/trunk/README) who do exactly that. And Rails decided to integrate it later.

Thanks John.

Stephen December 12, 2007 at 3:11 pm

Dude, no need for the ids. Those are sooo 1.2.x.

Comments on this entry are closed.