How to set up fixtures to use ActiveRecord callbacks?


#1

Hi all,

I have a rake task that is seeding my database. This is so I can drop
and recreate the entire database and then add some company accounts
very easily. My rake file (lib/tasks/database.rake) looks like this:

namespace :db do
desc “Load seed fixtures (from db/fixture) into the current
environment’s database.”
task :seed => :environment do
require ‘active_record/fixtures’
Dir.glob(RAILS_ROOT + ‘/db/fixture/.yml’).each do |file|
Fixtures.create_fixtures(‘db/fixture’, File.basename(file, '.
’))
end
end
end

Basically, it’s just looking through db/fixture for any fixture files
to load into the database. As mentioned previously, I’d like to use
the fixture to create some user accounts. However, in my account
model, I have a before_save callback that is responsible for creating
hashes of user’s passwords before they are saved out to the database.
Is there any way to do either make the rake task respect the
ActiveRecord callbacks or somehow add the hashing logic directly to
the task?

Thanks in advance,

Michael J. I. Jackson
removed_email_address@domain.invalid


#2

I’ve found the easiest way to do this is to put hashed passwords in
the fixtures, i.e.

user_1:
id: 1
email: removed_email_address@domain.invalid
password: ae135e826bbd76cf593d8db38c02ed2e134e159f #test

On Mon, Feb 23, 2009 at 1:52 PM, Michael J. I. Jackson