Gems是Rails中的库,通常可以让您更快地编写应用程序代码,从而在更短的时间内创建出色的产品。通常,每当我们开始开发任何应用程序时,都需要我们可以使用的数据来查看应用程序在执行某些负载测试时的行为方式,以及将它们部署到生产环境时的样子。创建数据的手动过程可能令人生畏。Faker gem可以通过生成假数据来消除这种痛苦,并节省我们在手动数据生成过程中浪费的所有时间和精力。
它可以生成几乎任何适合我们应用的数据。例如,它可以为名称,电子邮件,密码,电话号码,段落等字段生成虚假数据。因此,填充模型(这是Rails中的数据库层)的一种很棒的方式
让我们通过创建一个示例项目来看看这个gem。
$rails new FakerGemSampleProject
从应用程序目录打开Gemfile并添加'gem faker',如下所示。
文件名:Gemfile
gem 'faker'
一如既往地运行命令'bundle install'。
$ bundle install
只是为了确认并查看gems是否已成功安装。
$gem list | grep -i faker
faker (1.9.1)
所以,安装成功了!现在,让我们创建一个模型,我们将使用faker gem来处理数据。我们将样本模型称为PersonDetail,它将包含以下字段:
- First Name
- Last Name
- Age
- Phone Number
- Company Info
$ rails g scaffold PersonDetail first_name:string last_name:string age:integer
email:string phone_number:string company_info:text
由于我们使用脚手架进行更快速的演示,因此在迁移数据库之后将创建名为“person_details”的表以及提及的字段。
$ rails db:migrate
此时,我们应该使用上述字段创建表。我们可以在schema.rb文件中检查该表的实际结构
文件名:db / schema.rb
现在,应用程序目录'db'文件夹中有一个名为seeds.rb 的文件。
此文件中有一些示例(注释部分)可用于演示如何使用此文件。
我们也可以继续使用相同的行,并尝试使用Faker gem 为“person_details”表中的已定义字段创建数据。
FAKER的实际使用从这里开始!
我们的表格中有一些常见字段,例如FIRST_NAME,LAST_NAME,EMAIL,PHONE_NUMBER等。对于这些字段,用法如下所示:
Faker::Name.first_name → first_name
Faker::Name.last_name → last_name
Faker::Number.number(2) → age
Faker::Internet.email → email
Faker::PhoneNumber.phone_number → phone_number
Faker::Company.name → company_info
所有这些值将以随机方式生成,以在生成的数据中实现相当大的独特性。
结合所有这些字段,我们可以在person_details表中创建任意数量的行。
文件名:db / seeds.rb
这是数据生成的最后一步:
$ rails db:seed
我们可以将服务器作为“rails server”启动并输入路由
localhost://3000/person_details
我们搞定了!我们可以看到在索引列表页面上创建并显示了5个不同的行:
现在,虽然Faker以随机方式生成信息,但默认生成的数据可能始终是完全唯一的,也可能不是完全唯一的。为确保生成的数据始终是唯一的,我们可以在实际字段调用之前使用“unique”:
company_info: Faker::Company.unique.name
有许多这样的字段,我们可以有假数据。你可以在这里找到相同的详尽清单:
https://github.com/stympy/faker
原文:https://www.railscarma.com/blog/technical-articles/faker-gem-fake-data-generation-ruby/
网友评论