FactoryGirl создать список передать несколько значений

если у меня есть эта фабрика:

factory :product, class: Product do
  name        { Faker::Commerce.product_name }
  description { Faker::Lorem.paragraph }
  price       { Faker::Number.number(3) }
end

Я могу использовать create_list чтобы создать 2 таких продукта:

FactoryGirl.create_list(:product, 2)

но я хочу передать по умолчанию оба моих продукта, я бы предположил что-то теоретически подобное этому?:

prods = [{:name => "Product 1"},{:name => "Product 2"}]
FactoryGirl.create_list(:product, prods.count, prods)

Я искал некоторое время и не могу найти ответ на этот вопрос, возможно ли использовать элегантное решение, такое как create_list?

причина, по которой я хотел бы это решение, потому что :product - Это один из многих детей ассоциации с родительской моделью. Я хотел бы конфигурируемый способ, которым я мог бы создать родительскую фабрику моделей через один FactoryGirl.create команда и передать все значения, которые я хотел бы для дочерних ассоциаций (через использование черт FactoryGirl и игнорировать блоки). Надеюсь, в этом есть смысл. Я мог бы показать здесь кучу кода, но я считаю, что это обеспечивает достаточный контекст?

1 ответов


вы можете создать список себя:

data = [{:name => "Product 1"},{:name => "Product 2"}]
products = data.map { |p| FactoryGirl.create(:product, p) }

который должен оставить вас с массивом продуктов.