FixtureReplacement cheatsheetEdit
Note: This cheatsheet applies to the the original 1.x series of FixtureReplacement. Version 2.0, which I’ve never bothered updating to ("if it ain’t broke…"), uses a completely different syntax (see http://replacefixtures.rubyforge.org/ for full details).
The db/example_data.rb file
Given a model class, Foo:
module FixtureReplacement
  def foo_attributes
    {
      :thing             => "a value",
      :other             => "other value",
      :another           => String.random,     # random string 10 characters long
      :one_more          => String.random(15)  # 15 characters long
      :associated_object => default_bar        # expects bar_attributes to be defined
    }
  end
end
Methods available
String.random: generates a random string as shown above. 
new_foo: equivalent to Foo.new(foo_attributes). 
create_foo: equivalent to Foo.create!(foo_attributes). 
default_foo: for use inside _attributes definitions; this basically returns a Proc object which allows the actual creation of the object to be deferred until it is actually needed: in this way unnecessary object creation is avoided until it is known for sure that that particular attribute is not going to be overridden. 
Overriding the default attributes
new_foo(:thing => "overridden") 
create_post(:thing => "overridden") 
script/console use
$ script/console
>> include FixtureReplacement
Use with RSpec
String.random: generates a random string as shown above.new_foo: equivalent to Foo.new(foo_attributes).create_foo: equivalent to Foo.create!(foo_attributes).default_foo: for use inside _attributes definitions; this basically returns a Proc object which allows the actual creation of the object to be deferred until it is actually needed: in this way unnecessary object creation is avoided until it is known for sure that that particular attribute is not going to be overridden.new_foo(:thing => "overridden")create_post(:thing => "overridden")
script/console use
$ script/console
>> include FixtureReplacement
Use with RSpec
$ script/console
>> include FixtureReplacement
Add the following to your spec/spec_helper.rb file:
include FixtureReplacement