因为我们可能rails new了一个网站出来,但是里面没有测试数据,我们不能傻乎乎的在new.html.erb里面一个的手动输入吧?于是我们可以写一个小的脚本来帮助在数据库中插入大量数据;高版本的rails里new生成的网站中貌似已经没有script目录了,我们这里手动建立一个script目录,从而将脚本放进去。
具体脚本要怎么写,取决于你的model中结构如何,比如我的Order生成脚本类似如下:
Order.transaction do
(1..100).each do |i|
Order.create(name:"Customer #{i}",address:"#{i} Main Street",
email:"customer-#{i}@example.com",pay_type:'Check')
end
end
注意我把代码放在事务里面为的是如果发生错误不至于留下烂摊子,你也可以不用事务。该脚本文件名为make_orders.rb,那么问题来了:如何调用这个脚本呢?其实非常简单:
rails runner script/make_orders.rb
就可以啦。
顺便说一下:如果你想要插入少量数据可以在db/seeds.rb加入代码,如果你是在测试中想插入数据可以在test/fixtures中的*.yml文件中添加记录。
本文介绍了一种通过Rails脚本批量生成测试数据的高效方式,包括创建脚本、调用脚本以及在不同场景下插入数据的方法。通过在Rails应用中创建并运行脚本,可以轻松地在数据库中插入所需数量的数据,适用于测试和开发环境。
936

被折叠的 条评论
为什么被折叠?



