我正在尝试使用其模型关联生成虚假数据。例如,公司(模型)有许多机构(另一个模型)。
#seeds.rb
50.times do
{ FactoryGirl.create(:company) }
{ FactoryGirl.create(:establishment) }
end
FactoryGirl.define do
factory :company do
sequence(:name) { FFaker::Name.name }
sequence(:license) { FFaker::SSNMX.imss }
sequence(:legal_name) { FFaker::Name.name }
sequence(:billing_address) { FFaker::AddressFR.full_address }
user
end
end
FactoryGirl.define do
factory :establishment do
sequence(:name) { FFaker::Name.name }
sequence(:address) { FFaker::AddressFR.full_address }
company
end
end
我们的想法是让每家新公司至少拥有五家企业。换句话说,通过使用Company.establishment,它返回一个非空的数组。
我从2009年开始在SO上找到这个旧代码,但它不起作用
100.times do
Factory(:company, :address => Factory(:address), :employees => [Factory(:employee)])
end
答案 0 :(得分:1)
我不确定Ffaker
模块是什么,但我绝对推荐Faker
宝石。
他们有关于如何使用该模块生成虚假数据的精彩文档。
https://github.com/stympy/faker
您甚至可以创建将运行Faker脚本并自动为您创建数据的rake任务。至于一个好的Faker教程(并且一般只使用种子数据)我推荐以下文章:
http://sudharti.github.io/articles/using-faker-and-populator-rails/
另外作为附注,所有种子数据都应该在seeds.rb中。并且您将希望使用create方法并使用键值对来指定您的popluating。例如,如果我填写订单号,我会这样做:
Order.create(order_number: 123456789)
在上面的代码中,特别是FactoryGirl
您指定的是符号,而不是其键值对。这只是一个侧面观察。