Бала кезіндегі ата-аналық үлгісін құру үшін factory_girl-ды қалай пайдалануға болады

Менде бұл параметр бар:

  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

Агенттік бар, агенттер мен агенттік болуы керек. Бұл тауық-жұмыртқаны қалай шешуге болады? Factory (: agent) жасауды қалаймын, бірақ бұл Factory (: agency) деп аталады, ол содан кейін басқа агентті құруға тырысады.

1
@pneadiving Біздің логика агенттіксіз жарамды болып табылады, бірақ зауыттар үшін мен мұны істей алар едім. Егер ешқандай жақсы шешім болмаса, мен оны аламын.
қосылды автор Gavin, көзі
@ парнаждау Екінші ойда, бұл жұмыс істейтін болады деп ойламаймын. Агенттік agent_attributes жиынтығының болуын растайды.
қосылды автор Gavin, көзі
agent фабрикасының ешқандай кодын жасамайсыз, неге agent құруға болмайды.
қосылды автор apneadiving, көзі
Сіздің сұрағыңды қайта қарап, нақты проблеманы көре алмаймын. Байланысты нысандарды оңай анықтауға болады. Мында қараңыз: robots.thoughtbot.com/post/254496652/aint-no-calla-back-girl . Сонымен, сіз құрастырылған агенттікті агенттікке жібере аласыз.
қосылды автор apneadiving, көзі
зауыт қызының эпизоты Railscasts-да жаңартылғанын байқадыңыз ба?
қосылды автор apneadiving, көзі

1 жауаптар

Міне, мен:

  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
қосылды