我试图弄清楚如何编写一个属于 2 个不同模型的工厂,每个模型都应该具有相同的父模型。这是人为的示例代码:
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
有什么建议么?还是我必须在创建零件后对其进行修改?
谢谢