我创建一个api来从一组电子邮件中创建一个新用户(复数)。
我们假设除了用户需要电子邮件之外没有任何验证。所以我需要的是一封创建用户的电子邮件。
我这样做的原因是因为我正在创建一个API。
如何从一组电子邮件中创建用户?
这是阵列。我实际上有真正的电子邮件,但是对于这个例子,我会补充它们。
# => [
# [0] "email1@example.com.au",
# [1] "email2@example.com.au",
# [2] "email3@example.com",
# [3] "email4@example.com.au",
# [4] "email5@example.com.au"
# ]
要创建用户,这只是典型的方式
User.new(email: 123@example.com)
提前感谢您的帮助。
答案 0 :(得分:1)
要根据数组保存记录,您需要将该数组存储在变量中(请记住,在Ruby中,所有内容都是对象)。假设你有:
emails = ["email1@example.com.au",
"email2@example.com.au",
"email3@example.com",
"email4@example.com.au",
"email5@example.com.au"]
从那里你可以编写一个迭代你可爱数组的循环,并为你声明的每个数组项创建一个User:
emails.each do |e|
User.create(email: e)
end
用户。新不会保存记录,因此请使用用户。创建。
答案 1 :(得分:1)
如果您只想根据电子邮件列表保存记录(这是基于您的描述的数组),您只需要像@ l0010o0001l所说的那样(我喜欢这个昵称!:))。 但在我看来,如果将api提供给其他人,你可以做更多的事情。
首先,您应该在保存之前使用小写字母格式化电子邮件地址。每当保存新记录或维护旧记录时,这可能会有很大帮助。就像:
emails.each do |email|
User.create(email: email.downcase)
end
然后你需要将结果呈现给调用api的人。就像:如果所有电子邮件列表都已成功创建,您可以使用成功创建的记录金额进行响应。如果无法创建某些记录(格式错误,记录已存在.etc),您应该回复错误信息(您可能需要使用user.errors.full_messages
来获取错误消息)。
答案 2 :(得分:0)
这样做的方法有点像
user_emails.each do |user_email|
User.create(email: user_emails )
end