2013-03-05 12 views
7

Piszę niektóre testy, które wywołują tworzenie FG z cechą, która after_create, tworzy skojarzony obiekt. Czy istnieje sposób wysyłania parametrów do skojarzonego produktu, gdy wykonuję FG, lub czy muszę je później ustawić?Jak wysłać parametry do cechy FactoryGirl?

+0

Does [SO ten post] (http://stackoverflow.com/questions/16297357/factorygirl-override-attribute-of-associated -object) odpowiedzieć na twoje pytanie? Zrobiłbyś to samo, z wyjątkiem dodania bloku 'after_create'. – adarsh

Odpowiedz

7

Dodaj ten parametr w ignorować:

FactoryGirl.define do 
    trait :my_trait do 
    ignore do 
     associated_attributes nil 
    end 

    after_create do |object, evaluator| 
     # Use the ignored associated_attributes when creating the associated object 
     associated_object = AssociatedModel.new(evaluator.associated_attributes) 
    end 
    end 
end 

I this page has a lot more tricks

+1

ignore jest przestarzałe i zostanie usunięte w FactoryGirl 5.0 możesz użyć przejściowego zamiast ignorować [źródło] (https://github.com/thoughtbot/factory_girl/issues/527) – Ekkstein

Powiązane problemy