Tôi đang cố gắng tìm ra cách viết một nhà máy thuộc 2 mô hình khác nhau mà mỗi mô hình phải có cùng một mô hình gốc. Dưới đây là đoạn code mẫu giả tạo:Liên kết phức tạp FactoryGirl với nhiều mô hình
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
Dưới đây là những gì tôi có cho đến nay:
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
Vấn đề ở đây là các part.widget.user != part.supplier.user
và họ phải được như vậy.
Tôi đã thử những điều sau đây không có thành công:
factory :part do
association :widget
association :supplier, user: widget.user
name 'part'
end
gợi ý Bất kỳ? Hay tôi phải sửa đổi nó sau khi tôi tạo ra một phần?
Cảm ơn bạn
Cảm ơn rất nhiều. Tôi đã kết thúc bằng cách sử dụng 'after (: build)' và 'part.widget.user = part.supplier.user' theo cách đó tôi không tạo 3 người dùng :) –
Thật tuyệt khi nó hoạt động! Tôi không chắc lắm. Dường như với tôi thì phải có một cách sạch hơn để làm điều đó. –
Đó là những gì tôi nghĩ quá, nhưng 'hiệp hội: nhà cung cấp, người dùng: widget.user' không hoạt động có thể là một cái gì đó để xem xét cho một bản vá –