J'ai un modèle Person
qui a une relation plusieurs-à-plusieurs avec un modèle Email
et je veux créer une usine qui me permet de générer un prénom et un nom pour la personne (ceci est déjà fait) et créer une adresse e-mail cela est basé sur le nom de cette personne. Voici ce que j'ai pour créer un nom de person
:Comment puis-je créer/créer une association many-to-many dans factory_girl?
Factory.sequence :first_name do |n|
first_name = %w[FirstName1 FirstName2] # ... etc (I'm using a real subset of first names)
first_name[(rand * first_name.length)]
end
Factory.sequence :last_name do |n|
last_name = %w[LastName1 LastName2] # ... etc (I'm using a real subset of last names)
last_name[(rand * last_name.length)]
end
Factory.define :person do |p|
#p.id ???
p.first_name { Factory.next(:first_name) }
p.last_name { Factory.next(:last_name) }
#ok here is where I'm stuck
#p.email_addresses {|p| Factory(:email_address_person_link) }
end
Factory.define :email_address_person_link do |eapl|
# how can I link this with :person and :email_address ?
# eapl.person_id ???
# eapl.email_address_id ???
end
Factory.define :email_address do |e|
#how can I pass p.first_name and p.last_name into here?
#e.id ???
e.email first_name + "." + last_name + "@test.com"
end
Ça marche, vous rock! Et pour tous ceux qui sont intéressés, consultez aussi ce blog: http://robots.thoughtbot.com/post/254496652/aint-no-calla-back-girl ou http://railsondave.blogspot.com/2009/ 05/creation-hasmany-par-usines-avec.html – DJTripleThreat