如何在一个数组中多次重复单个散列?
How to repeat single hash multiple times in one array?
我想创建数十个依赖于此数组中数据的登录名,登录名:
logins = [
{
email: Faker::Internet.email,
password: "password",
first_name: Faker::Name.first_name,
last_name: Faker::Name.last_name
},
{
email: Faker::Internet.email,
password: "password",
first_name: Faker::Name.first_name,
last_name: Faker::Name.last_name
}
]
有什么方法可以更好地编写此数组,而不是多次复制和粘贴该哈希值?我熟悉 x.times do 但这不适用于数组。
这是我在登录时传递的代码:
logins.each do |login|
li = LoginInformation.new(login: login[:email], password: login[:password])
if UserManager.save(li)
company_ids.each do |id|
li.contacts.create(first_name: login[:first_name], last_name: login[:last_name], email_address: login[:email], company_id: id, is_employee: true)
end
end
end
.times
returns 可以调用 .map
以获取数组的枚举器。
logins = 10.times.map do
{
email: Faker::Internet.email,
password: "password",
first_name: Faker::Name.first_name,
last_name: Faker::Name.last_name
}
end
或使用 Zoran Pesic 提到的 Array.new
。
简化 logins
数组创建的一种方法是将包含 Faker
方法的散列对象作为一个块传递,如下所示:
logins = Array.new(10) { { email: Faker::Internet.email, password: 'password', first_name: Faker::Name.first_name, last_name: Faker::Name.last_name } }
您可以将此示例中的 10
替换为您的用例所需的元素数。
希望对您有所帮助!
您可以使用 for 循环多次插入值
logins=[]
for i in 0..10
logins <<
{
email: Faker::Internet.email,
password: "password",
first_name: Faker::Name.first_name,
last_name: Faker::Name.last_name
}
end
也可以这样做:
10.times do
login = { email: Faker::Internet.email, password: 'password', first_name: Faker::Name.first_name, last_name: Faker::Name.last_name }
li = LoginInformation.new(login: login[:email], password: login[:password])
if UserManager.save(li)
company_ids.each do |id|
li.contacts.create(first_name: login[:first_name], last_name: login[:last_name], email_address: login[:email], company_id: id, is_employee: true)
end
end
end
我想创建数十个依赖于此数组中数据的登录名,登录名:
logins = [
{
email: Faker::Internet.email,
password: "password",
first_name: Faker::Name.first_name,
last_name: Faker::Name.last_name
},
{
email: Faker::Internet.email,
password: "password",
first_name: Faker::Name.first_name,
last_name: Faker::Name.last_name
}
]
有什么方法可以更好地编写此数组,而不是多次复制和粘贴该哈希值?我熟悉 x.times do 但这不适用于数组。
这是我在登录时传递的代码:
logins.each do |login|
li = LoginInformation.new(login: login[:email], password: login[:password])
if UserManager.save(li)
company_ids.each do |id|
li.contacts.create(first_name: login[:first_name], last_name: login[:last_name], email_address: login[:email], company_id: id, is_employee: true)
end
end
end
.times
returns 可以调用 .map
以获取数组的枚举器。
logins = 10.times.map do
{
email: Faker::Internet.email,
password: "password",
first_name: Faker::Name.first_name,
last_name: Faker::Name.last_name
}
end
或使用 Zoran Pesic 提到的 Array.new
。
简化 logins
数组创建的一种方法是将包含 Faker
方法的散列对象作为一个块传递,如下所示:
logins = Array.new(10) { { email: Faker::Internet.email, password: 'password', first_name: Faker::Name.first_name, last_name: Faker::Name.last_name } }
您可以将此示例中的 10
替换为您的用例所需的元素数。
希望对您有所帮助!
您可以使用 for 循环多次插入值
logins=[]
for i in 0..10
logins <<
{
email: Faker::Internet.email,
password: "password",
first_name: Faker::Name.first_name,
last_name: Faker::Name.last_name
}
end
也可以这样做:
10.times do
login = { email: Faker::Internet.email, password: 'password', first_name: Faker::Name.first_name, last_name: Faker::Name.last_name }
li = LoginInformation.new(login: login[:email], password: login[:password])
if UserManager.save(li)
company_ids.each do |id|
li.contacts.create(first_name: login[:first_name], last_name: login[:last_name], email_address: login[:email], company_id: id, is_employee: true)
end
end
end