2013-01-04 15 views
6

Attualmente non ci sono risposte aggiornate per questo usando Factory Girl 4.1 (che ho potuto trovare) - come si imposta un rapporto molti a molti all'interno di una fabbrica?Rails 3 Factory Girl + Molte a molte relazioni

Per esempio ho Studenti e Aule che sono in molti a molti rapporti utilizzando una tabella unirsi, finora ho avuto la seguente configurazione:

factory :classroom do 
    name "Foo Class" 
    ... 
end 

factory :student do 
    name "John Doe" 
    ... 
end 

factory :student_with_classroom, :parent => :student do 
    after(:build) {|student| student.classrooms << classroom} 
end 

Tuttavia, questo si traduce in:

NameError: 
     undefined local variable or method `classroom' for #<FactoryGirl::SyntaxRunner> 

Il mio tentativo è stato per lo più un'ipotesi, poiché non ho avuto fortuna a trovare una sintassi non deprecata per ottenere questo risultato.

+0

possibile duplicato di [Come creare has \ _and \ _belongs \ _to \ _molte associazioni in Factory girl] (http://stackoverflow.com/questions/1484374/how-to-create-has-and-belongs-to -molte associazioni-in-fabbrica-ragazza) – Noz

risposta

18

In realtà sono riuscito a trovare la risposta che cercavo sepolto sotto una sfilza di altre risposte in questo SO: How to create has_and_belongs_to_many associations in Factory girl

factory :classroom do 
    name "Foo Class" 
    ... 
end 

factory :student do 
    name "John Doe" 
    ... 
end 

factory :student_with_classroom, :parent => :student do 
    classrooms {[FactoryGirl.create(:classroom)]} 
end 
+0

Penso che la ragione principale per cui non si possa semplicemente indicare il nome della fabbrica sia perché si aspetta un array. Buona pesca! –

Problemi correlati