我有四个模型:User
、Product
和。并且有一个,并且属于和属于(多态模型)。Ownership
Location
User
Product
Location
Location
User
Product
我想用来FactoryGirl
创建与其所有者具有相同位置的产品。
factory :location do
sequence(:address) { |n| "#{n}, street, city" }
end
factory :user do
sequence(:name) { |n| "Robot #{n}" }
sequence(:email) { |n| "numero#{n}@robots.com"}
association :location, factory: :location
end
factory :product do
sequence(:name) { |n| "Objet #{n}" }
association :location, factory: :location
end
factory :ownership do
association :user, factory: :user
association :product, factory: :product
end
我在产品模型文件中创建了一个方法来检索产品的所有者,只需执行product.owner
.
我想调整产品工厂,以便将工厂位置替换为product.owner.location
. 我怎样才能做到这一点?
编辑 1
我想这样使用它:
首先我创建一个用户
FactoryGirl.create(:user)
后来我创建了一个产品
FactoryGirl.create(:product)
当我把他们两个联系起来时
FactoryGirl.create(:current_ownership, product: product, user: user)
我希望我的产品的位置成为他的所有者之一。