def emails
i = 0
number = rand(252...4350)
males = ["tom", "jack", "adam"]
females = ["elizabeth", "rose", "juliet"]
surnameMales = ["oak", "yew", "timber"]
surnameFemales = ["rosewelth", "gates", "jobs"]
providers = ["gmail.com", "hotmail.com", "yahoo.com"]
while i <= 100 do
@addresses <<
end
end
我想做的是选择一个随机数,名字,姓氏和提供者并将它们放在一起+在姓氏的末尾添加一个随机数,以便它看起来像这样:{{1}但是,有点卡在我必须把整个事情放在一起的地方。您可以告诉我,我想创建一个rose.gates643@gmail.com
随机电子邮件用于测试目的。
您能否指出我如何能够完成我对100
的打算?
答案 0 :(得分:10)
您的目标是将此作为练习吗?或者这只是您尝试完成的事情?如果是后者,请安装faker gem并使用它:
Faker::Internet.email #=> "kirsten.greenholt@corkeryfisher.info"
100:
100.times.map { Faker::Internet.email }
答案 1 :(得分:2)
使用字符串插值和Array#sample的组合。
"#{females.sample}.#{surnameFemales.sample}#{rand(252...4350)}@#{providers.sample}"
>> "rose.rosewelth3266@gmail.com"
答案 2 :(得分:1)
有一个couple ways to join strings in Ruby。内联占位符似乎在这里最有意义:
@addressess << "#{ males.sample }.#{ surnameMales.sample }#{ number }@#{ providers.sample }"
在双引号字符串中,#{ expr }
被评估并以内联为子。例如,"#{ 1 + 1 }"
输出"2"
。
还有几种方法可以区分男性或女性 - 例如,检查随机数是偶数还是奇数:
name = if rand(1..100) % 2 == 0 ? "#{ males.sample }.#{ surnameMales.sample }" : "#{ females.sample }.#{ surnameFemales.sample }"
@addresses << "#{ name }#{ number }@#{ providers.sample }"