Search code examples
ruby-on-railsrakefactoryfactory-bot

Using factory_girl within a rake task - getting uninitialized constant


I'm trying to use Factory Girl in a rake task like this:

require 'factory_girl'
require File.expand_path("spec/factories.rb")

namespace :users do

  desc "Create sample users for use in development" 
  task :create_sample_users => :environment do
    Factory(:user, :email => "pending@acme.com")
    Factory(:approved_user, :email => "user@acme.com") 
  end

end

However when I run rake users:create_sample_users I get the error uninitialized constant Entry (Entry is the name of one of my app's classes).

Can anyone tell me how to get Factory girl to see my classes? It's working fine in my tests, just failing in my rake tasks.


Solution

  • I'm guessing that Rails hasn't loaded your models at the point you are requiring the factories. Try this:

    require 'factory_girl'
    
    namespace :users do
    
      desc "Create sample users for use in development" 
      task :create_sample_users => :environment do
        require File.expand_path("spec/factories.rb")
        Factory(:user, :email => "pending@acme.com")
        Factory(:approved_user, :email => "user@acme.com") 
      end
    
    end