Email
모델과 many-to-many 관계를 가지고있는 Person
모델을 가지고 있고 그 사람의 이름과 성을 생성 할 수있는 팩토리를 만들고 싶습니다 (이미 완료되었습니다). 그리고 이메일 주소를 만듭니다. 그 사람의 이름을 기반으로합니다.factory_girl에서 many-to-many 연관을 어떻게 만들거나 만들 수 있습니까?
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
그게 효과가있어! 관심있는 사람은 http://robots.thoughtbot.com/post/254496652/aint-no-calla-back-girl 또는 http://railsondave.blogspot.com/2009/에서이 블로그를 확인해보십시오. 05/creating-hasmany-through-factories-with.html – DJTripleThreat