Flexible Fixtures in Rails 2

Tweet

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!

Get your free chapter of Level Up Your Web Apps with Go

Get a free chapter of Level Up Your Web Apps with Go, plus updates and exclusive offers from SitePoint.

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