我正在尝试使用以下代码从csv加载数据作为rake任务:
require 'csv'
desc "Import Users from csv file"
task :import_users => [:environment] do
file = "db/users.csv"
CSV.foreach(file, :headers => true) do |row|
User.create {
:name => row[1],
:email => row[2],
:password => row[3],
:password_confirmation => row[4],
:admin => row[5]
}
end
end
和CSV:
name,email,password,password_confirmation,admin
john smith,js@mail.com,password,password,TRUE
我为每个属性收到意外的tASSOC错误。
答案 0 :(得分:0)
如果你在创建方法的哈希周围放置括号,它将正常工作:
User.create({
:name => row[1],
:email => row[2],
:password => row[3],
:password_confirmation => row[4],
:admin => row[5]
})
基本上ruby不明白这是一个以hash作为参数的方法调用。通过将括号放在那里,你可以明确指出这就是你的意思。