2015-11-03 56 views
0

我创建了一个API来从一系列电子邮件中创建一个新用户(复数)。通过一系列电子邮件创建用户

我们假设除用户需要电子邮件之外,没有验证。所以我只需要一封电子邮件来创建一个用户。

我这样做的原因是因为我正在创建一个API。

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

这是数组。我其实有真正的电子邮件,但对于这个例子,我会做出来的。

# => [ 
#  [0] "[email protected]", 
#  [1] "[email protected]", 
#  [2] "[email protected]", 
#  [3] "[email protected]", 
#  [4] "[email protected]" 
# ] 

为了创建这只是典型的方式提前为任何帮助

User.new(email: [email protected]) 

感谢用户。

回答

1

做到这一点的方法是somethign像

user_emails.each do |user_email| 
    User.create(email: user_emails) 
end 
1

要保存基于阵列上的记录,你会想该数组存储在一个变量(记住,在Ruby中,一切都是对象)。比方说,你有:

emails = ["[email protected]", 
      "[email protected]", 
      "[email protected]", 
      "[email protected]", 
      "[email protected]"] 

从那里,你可以写一个循环,在你可爱的阵列进行迭代,并且为你声明的每个数组项创建一个用户:

emails.each do |e| 
    User.create(email: e) 
end 

用户。 不会保存记录,所以请使用用户。 创建

1

如果你只是想保存基于邮件列表(这是一个基于你的描述的数组)的记录,你只需要像@ l0010o0001l所说的(我喜欢这个昵称!:))做所有事情。 但在我看来,如果这个api会提供给其他人,你可以做更多的事情。

首先,您应该先将小写的所有单词格式化为电子邮件地址,然后再保存它们。这对于保存新记录或保留旧记录可能会有很大的帮助。就像:

emails.each do |email| 
    User.create(email: email.downcase) 
end 

然后,您需要将结果呈现给调用api的人。就像:如果所有电子邮件列表已成功创建,您可以使用成功创建的记录数量进行响应。如果某些记录无法创建(格式错误,记录已存在.etc),则应回复错误信息(您可能需要使用user.errors.full_messages来获取错误消息)。