如果我有这个工厂:
factory :product, class: Product do
name { Faker::Commerce.product_name }
description { Faker::Lorem.paragraph }
price { Faker::Number.number(3) }
end
Run Code Online (Sandbox Code Playgroud)
我可以create_list
用来创建这样的2个产品:
FactoryGirl.create_list(:product, 2)
Run Code Online (Sandbox Code Playgroud)
但我想将默认值传递给我的两个产品,我认为理论上会有这样的东西?:
prods = [{:name => "Product 1"},{:name => "Product 2"}]
FactoryGirl.create_list(:product, prods.count, prods)
Run Code Online (Sandbox Code Playgroud)
我已经搜索了一段时间而无法找到答案,是否可以使用优雅的解决方案create_list
?
我想要这个解决方案的原因是因为:product
是父模型的许多子关联之一.我想要一种可配置的方式,我可以通过一个FactoryGirl.create
命令生成父模型工厂,并传递我想要的子关联的所有值(通过使用FactoryGirl的特征和忽略块).我希望这是有道理的.我可以在这里显示一堆代码,但我相信这提供了足够的上下文?
看这个例子:
str = "aaaaaaaaaaaaaaaaaaaaaa"
Regex.match? ~r/a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?aaaaaaaaaaaaaaaaaaaaaa/, str
#=> true
Regex.match? ~r/a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?aaaaaaaaaaaaaaaaaaaaaa/, str
#=> false
Run Code Online (Sandbox Code Playgroud)
请注意str
,只有当我a?
向正则表达式添加更多s时,如果变长则不会中断.