User、Product、Ownershipおよびの4 つのモデルがありLocationます。Userと をProduct持ちLocation、(ポリモーフィック モデル)と にLocation属します。UserProduct
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)
私の製品の場所が彼の所有者のものになることを望みます。