User
、Product
、Ownership
およびの4 つのモデルがあり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)
私の製品の場所が彼の所有者のものになることを望みます。