Flexible Fixtures in Rails 2

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!

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

  • Stephen

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

  • http://philrathe.com Philippe Rathe

    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.

  • hadrien

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