Не уверен, что это может быть полезно для вас.
С помощью этой настройки вы можете создавать n продуктов, используя фабрику singleton_product. Все эти продукты будут иметь одну и ту же платформу (то есть платформу FooBar).
factory :platform do
name 'Test Platform'
end
factory :product do
name 'Test Product'
platform
trait :singleton do
platform{
search = Platform.find_by_name('FooBar')
if search.blank?
FactoryGirl.create(:platform, :name => 'FooBar')
else
search
end
}
end
factory :singleton_product, :traits => [:singleton]
end
Вы по-прежнему можете использовать стандартную фабрику продуктов «product» для создания продукта с платформой «Test Platform», но произойдет сбой при его вызове для создания второго продукта (если имя платформы установлено как уникальное).