Rails Faker - 如何生成自定义域电子邮件?

Nix*_*Nix 0 rubygems ruby-on-rails faker

理想情况下,我想根据 Faker 生成的电子邮件创建一封假电子邮件,但我想实现以下目标faker_first_name@mydomain.com:该文档显示您可以对第一部分执行此操作,但不能对实际域执行此操作。有办法实现这一点吗?

20.times do
  u = User.new(first_name: Faker::Name.first_name,               
               last_name:  Faker::Name.last_name,
               email: Faker::Name.first_name"@THISPART.com",
               )
  u.save
end
Run Code Online (Sandbox Code Playgroud)

Dee*_*ale 11

2019 年 12 月更新:

Faker v2.8.0版本引入了域名支持 - Release v2.8.0

现在,可以在创建电子邮件地址时传递域名。

以下是可能的选项:

Faker::Internet.email #=> "eliza@mann.net"
Faker::Internet.email(name: 'Nancy') #=> "nancy@terry.biz"
Faker::Internet.email(name: 'Janelle Santiago', separators: '+') #=> janelle+santiago@becker.com"
Faker::Internet.email(domain: 'example.com') #=> alice@example.com"
Run Code Online (Sandbox Code Playgroud)

注意:以上代码示例来自 faker 文档

旧答案:

好吧,没有这样的规定可以传递domain name给该方法

但是,您可以利用Faker::Internet.user_name

User.new(
  first_name: Faker::Name.first_name,               
  last_name:  Faker::Name.last_name,
  email:      "#{Faker::Internet.user_name}@customdomain.com"
)
Run Code Online (Sandbox Code Playgroud)