我想弄清楚如何編寫屬於2個不同模型的工廠,每個模型都應該有相同的父模型。這裏是人爲的示例代碼:FactoryGirl與多個模型的複雜關聯
class User < ActiveRecord::Base
has_many :widgets
has_many :suppliers
attr_accessible :username
end
class Widget < ActiveRecord::Base
belongs_to :user
has_many :parts
attr_accessible :name
end
class Supplier < ActiveRecord::Base
belongs_to :user
has_many :parts
attr_accessible :name
end
class Part < ActiveRecord::Base
belongs_to :supplier
belongs_to :widget
attr_accessible :name
end
這是我到目前爲止有:
factory :user do
name 'foo'
end
factory :widget do
association :user
name 'widget'
end
factory :supplier do
association :user
name 'supplier'
end
factory :part do
association :widget
association :supplier
name 'part'
end
這樣做的問題是,part.widget.user != part.supplier.user
,他們必須是相同的。
我嘗試沒有成功如下:
factory :part do
association :widget
association :supplier, user: widget.user
name 'part'
end
有什麼建議?或者在創建零件之後我必須修改它嗎?
謝謝
非常感謝。我結束了使用'後(:建設)'和'part.widget.user = part.supplier.user'這樣我不創建3個用戶:) –
哦,太棒了,它的工作!我不太確定。在我看來,儘管如此,仍然必須有一種更清晰的方式。 –
這就是我的想法,但'協會:供應商,用戶:widget.user'不起作用可能是一個補丁 –