Как использовать factory_girl для построения родительской модели в дочернем - PullRequest
1 голос
/ 28 октября 2011

У меня есть эта настройка:

  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 'user@test.com'
    a.password 'please'
  end

Агентство has_many Агенты и агентство должны присутствовать.Как решить эту курицу?Я хочу сделать Factory (: agent), но это вызовет Factory (: agency), которая затем попытается построить другого агента.

1 Ответ

1 голос
/ 29 октября 2011

Вот что я придумал:

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

  factory :agent do |a|
    a.email 'user@test.com'
    a.password 'please'
    a.after_create { |a| FactoryGirl.create(:agency, agent_ids: [a.id], agents_attributes: {}) }
  end
...