我的問題似乎很常見,但我還沒有在文檔或Internet本身找到任何答案。FactoryGirl:填充一個有很多關係的保存構建策略
它似乎是這個問題的一個克隆has_many while respecting build strategy in factory_girl,但在該工廠factory_girl改變很多後的2年之後。
我有一個與has_many關係稱爲照片的模型。我想填充這個有很多關係保留我的構建策略的選擇。
如果我打電話offering = FactoryGirl.build_stubbed :offering, :stay
我希望offering.photos
是一個殘段模型的集合。
我找到了實現這一目標的唯一途徑就是這一個:
factory :offering do
association :partner, factory: :named_partner
association :destination, factory: :geolocated_destination
trait :stay do
title "Hotel Gran Vía"
description "Great hotel in a great zone with great views"
offering_type 'stay'
price 65
rooms 70
stars 4
event_spaces 3
photos do
case @build_strategy
when FactoryGirl::Strategy::Create then [FactoryGirl.create(:hotel_photo)]
when FactoryGirl::Strategy::Build then [FactoryGirl.build(:hotel_photo)]
when FactoryGirl::Strategy::Stub then [FactoryGirl.build_stubbed(:hotel_photo)]
end
end
end
end
沒有必要說,它必須存在一個更好的方式做到這一點。
想法?
在我看來這適用於不是has_many的關聯嗎? –
我不認爲你需要在這裏指定策略。 –
反向不適合我,例如'offering.photos.first.offering == offering'是'false'。 –