Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从一系列电子邮件创建用户_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 从一系列电子邮件创建用户

Ruby on rails 从一系列电子邮件创建用户,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,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@examp

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

提前感谢您的帮助。

这样做的方法

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

要基于数组保存记录,您需要将该数组存储在变量中(请记住,在Ruby中,一切都是对象)。假设你有:

emails = ["email1@example.com.au", 
          "email2@example.com.au", 
          "email3@example.com",
          "email4@example.com.au",
          "email5@example.com.au"]
从那里,您可以编写一个循环,在可爱的数组上迭代,并为您声明的每个数组项创建一个用户:

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

用户。new不会保存记录,因此请使用User。创建

如果您只想根据电子邮件列表保存记录(这是一个基于您描述的数组),您只需执行@l0010o0001l所说的一切操作(我喜欢这个昵称!)。 但在我看来,如果这个api能提供给其他人,你可以做更多的事情

第一件事是,在保存之前,你应该用小写字母格式化电子邮件地址。无论何时保存新记录或维护旧记录,这都会有很大帮助。就像:

emails.each do |email|
  User.create(email: email.downcase)
end
然后,您需要将结果呈现给调用api的人。就像:如果所有的电子邮件列表都创建成功了,你可以用成功创建的记录金额来回复。如果无法创建某些记录(格式错误、记录已存在等),您应该使用错误信息进行响应(您可能需要使用
user.errors.full\u messages
获取错误消息)