2011-11-10 8 views
5

Próbuję użyć Dziewczyna z fabryki w zadaniu natarcia jak ten:Korzystanie factory_girl ramach zadania natarcia - coraz niezainicjowany stała

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 

Jednak gdy uruchamiam rake users:create_sample_users pojawia się błąd uninitialized constant Entry (wpis jest nazwą z jednej z klas mojej aplikacji).

Czy ktoś może mi powiedzieć, jak zdobyć dziewczynę z fabryki, aby zobaczyć moje zajęcia? Działa to dobrze w moich testach, po prostu nie spełnia moich zadań rake.

Odpowiedz

10

Zgaduję, że Rails nie załadował twoich modeli w miejscu, w którym żądasz fabryk. Spróbuj tego:

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

Dzięki - to posortowałem! Jako bonus, czy wiesz, gdzie mogę umieścić 'require File.expand_path (" spec/factories.rb ")', więc nie muszę uwzględniać go w każdym zadaniu? Dzięki jeszcze raz. – Mike

0

@ dmcnally's odpowiedź nie działa dla mnie, ponieważ dostaję nieparzyste błędy stałych nie znaleziono. Zamiast tego rozwiązałem go, wysyłając ostrzeżenie biegaczowi:

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