我收到了一个包含电子邮件和密码的CSV文件。
我的任务是浏览这个CSV文件,并使用designgem创建用户。
你可能会想,为什么我会收到别人的电子邮件和密码(我也是(,但我被告知不要担心。
我的csv文件如下所示:
Email,Password,Password_confirmation,,
email1@email.com ,password1,password1,,
email2@email.com ,password2,password2,,
email3@email.com ,password3,password3,,
我在seeds.rb文件中写了以下代码:
require 'csv'
CSV.foreach("db/fixtures/users.csv", :col_sep => ",", :headers => true) do |row|
User.create(email: row['email'], password: row['password'], password_confirmation: row['password_confirmation'])
end
我运行rails db:seed
来创建用户,但什么也没发生,也没有错误消息。
欢迎任何支持。
首先,将带有实际密码的文件置于版本控制之下并将其导入seeds.rb中是一个非常糟糕的主意。为此,最好添加一个rake任务,接受csv文件路径作为参数,并在合适的环境中执行一次。
关于代码,CSV导入中的头是区分大小写的,所以如果您通过row['Email']
、row['Password']
等获取行值,它就会起作用。此外,请确保填写这些字段足以保存用户,在您的特定模型中可能还有一些其他必填字段。