2011-11-10 12 views
5

Sto cercando di utilizzare Factory Girl in un task rake come questo:Utilizzando factory_girl all'interno di un task rake - ottenere inizializzato costante

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 => "[email protected]") 
    Factory(:approved_user, :email => "[email protected]") 
    end 

end 

Tuttavia quando corro rake users:create_sample_users ottengo l'errore uninitialized constant Entry (voce è il nome di una delle classi della mia app).

Qualcuno può dirmi come far vedere a Factory girl le mie lezioni? Sta funzionando bene nei miei test, solo fallendo nei miei compiti di rastrello.

risposta

10

Suppongo che Rails non abbia caricato i modelli nel punto in cui si richiedono le fabbriche. Prova questo:

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 => "[email protected]") 
    Factory(:approved_user, :email => "[email protected]") 
    end 

end 
+1

Grazie - che l'ha ordinato! Come bonus, sai dove posso mettere 'require File.expand_path (" spec/factories.rb ")' quindi non devo includerlo in ogni compito? Grazie ancora. – Mike

0

@ dmcnally la risposta non ha funzionato per me, poiché ricevevo strani errori di costanti non trovate. Invece, l'ho risolto bombardando per runner:

sh "rails runner 'FactoryGirl.create :user'" 
Problemi correlati