Baba modelni yaratish uchun factory_girl ni qanday ishlatish kerak

Menda ushbu sozlama mavjud:

  factory :agency do |a|
    a.agents_attributes { [FactoryGirl.attributes_for(:agent)] }
    a.subdomain 'clear'
    a.name 'ClearProperty'
  end

  factory :agent do |a|
    agency
    a.email '[email protected]'
    a.password 'please'
  end

Agentlikning vakolatli agentlari va agentligi mavjud bo'lishi kerak. Bu tovuq-n-tuxumni qanday hal qilish mumkin? Standart (: agent) qilishni xohlayman, lekin bu boshqa bir agentni qurishga urinadigan Factory (: agency) deb ataydi.

1
@pneadiving Bizning mantiq shunga o'xshashki, Agentlik agentsiz ishlamaydi, ammo zavodlar uchun men buni albatta qila olaman. Agar yaxshiroq yechim topilmasa, men uni qabul qilaman.
qo'shib qo'ydi muallif Gavin, manba
@Peadizing Ikkinchi fikrda, bu ishlayman deb o'ylayman. Agentlik agent_attributlar majmui mavjudligini tasdiqlaydi.
qo'shib qo'ydi muallif Gavin, manba
nima uchun agenti funktsiyangizni yaratishingiz mumkin, bu esa agenti yaratmaydi.
qo'shib qo'ydi muallif apneadiving, manba
Sizning savolingizni qayta o'qib chiqsangiz, men hech qanday haqiqiy muammoni ko'ra olmayapman. Bilan bog'liq narsalarni osongina aniqlashingiz mumkin. Bu yerga qarang: robots.thoughtbot.com/post/254496652/aint-no-calla-back-girl . Shunday qilib, siz yaratgan agentni agentlikka yuborishingiz mumkin.
qo'shib qo'ydi muallif apneadiving, manba
Fabrika qizining epizodi Railscasts-da yangilanganligini sezdingizmi?
qo'shib qo'ydi muallif apneadiving, manba

1 javoblar

Mana, men nimani boshladim:

  factory :agency do |a|
    a.agents_attributes { [FactoryGirl.attributes_for(:agent)] }
    a.subdomain 'clear'
    a.name 'ClearProperty'
  end

  factory :agent do |a|
    a.email '[email protected]'
    a.password 'please'
    a.after_create { |a| FactoryGirl.create(:agency, agent_ids: [a.id], agents_attributes: {}) }
  end
1
qo'shib qo'ydi