È possibile conservare la strategia di generazione quando ho un factory per un modello che ha un'associazione con un secondo modello, che a sua volta ha un'associazione con un terzo modello?Strategia di build di FactoryGirl con associazioni nidificate
Nell'esempio seguente, un post è associato a un utente e un utente è associato a una città. Anche se si utilizza lo :strategy => :build
per tutte le associazioni, post.user
e post.user.city
vengono salvati nel database. Nell'interesse di una veloce suite di test, posso evitare che queste scritture di database si verifichino?
Factory.define do
factory :user do
name "A User"
association :city, :strategy => :build
end
factory :city do
name "A City"
end
factory :post do
title "A Post"
body "Some text here"
association :user, :strategy => :build
end
end
post = FactoryGirl.build(:post)
post.new_record? # True
post.user.new_record? # False
post.user.city.new_record? # False