2013-01-04 4 views
6

Il n'y a actuellement aucune réponse à jour pour cela en utilisant Factory Girl 4.1 (que j'ai pu trouver) - comment installez-vous une relation de plusieurs à l'intérieur d'une usine?Rails 3 Factory Girl + Plusieurs à plusieurs relations

Par exemple, j'ai étudiants et Salles de classe qui sont en relation plusieurs à plusieurs en utilisant une table de jointure, jusqu'à présent, j'eu la configuration suivante:

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 

Cependant, cela se traduit par:

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

Ma tentative a été approximative pour la plupart car je n'avais aucune chance de trouver une syntaxe non-obsolète pour accomplir ceci.

+0

duplication possible de [Comment créer has \ _and \ _belongs \ _to \ _plusieurs associations dans Factory girl] (http://stackoverflow.com/questions/1484374/how-to-create-has-and-belongs-to -many-associations-in-factory-girl) – Noz

Répondre

18

En fait, je réussi à trouver la réponse que je cherchais enterré sous un tas d'autres réponses dans ce 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

Je pense que la raison principale pour laquelle vous ne pouvez pas simplement indiquer le nom de l'usine est parce qu'elle attend un tableau. Bonne prise! –

Questions connexes