从一组电子邮件中创建用户

时间:2015-11-03 05:28:30

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

我创建一个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)

提前感谢您的帮助。

3 个答案:

答案 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