2011-11-08 6 views
0
invitation ------> event 
    \      \ 
    \/     \/ 
responder(person) ---->account 
     \     /\ 
     \    /
     group------------- 

私は上記の関連グラフを持っています。 以下の工場コード:オブジェクトグラフの工場ガール共通ルート

Factory.define :invitation do |i| 
    i.association :event 
    i.association :responder, :factory => :person 
end 


Factory.define :event do |e| 
    e.association :account 
end 


Factory.define :person do |p| 
    p.association :account 
    p.association :group 
end 

Factory.define :group do |g| 
    g.association :account 
end 

私は「ファクトリー:招待状」との招待状を作成したい場合は、アカウントが複数回作成されます。そして、アカウントのためのユニークなフィールドは、2回目の試みで既に取られています。 これには賢明で素敵な領収書はありますか?

答えて

1

after_create(またはafter_build)コールバックでイベントのアカウントを再利用できます。

Factory.define :invitation do |i| 
    i.association :event 
    i.after_create { |i| i.responder = Factory(:person, :account => i.event.account) } 
end 

同様に、グループファクトリを変更する必要があります。

+0

hm ...私にチェックさせてください:) – Boti

+0

after_buildを使用してください、それは良いはずです。 – mb14

関連する問題