Forum: Ruby on Rails How to set up fixtures to use ActiveRecord callbacks?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
9210a60b1492363560375d9cd6c842de?d=identicon&s=25 Michael J. I. Jackson (Guest)
on 2009-02-23 22:53
(Received via mailing list)
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
mjijackson@gmail.com
92497f51734ed56687928d5fd68d870a?d=identicon&s=25 Sarah Mei (Guest)
on 2009-02-23 23:04
(Received via mailing list)
I've found the easiest way to do this is to put hashed passwords in
the fixtures, i.e.

user_1:
  id: 1
  email: user@mysite.com.test
  password: ae135e826bbd76cf593d8db38c02ed2e134e159f #test

On Mon, Feb 23, 2009 at 1:52 PM, Michael J. I. Jackson
This topic is locked and can not be replied to.