我在将.csv文件导入rails(3.2.6)时遇到问题。这是我对csv短语的第一次体验,我是一般的新手。我使用Devise生成User模型,不知道这是否与此问题有关。我只是在tasks / import.rake中创建一个简单的rake任务
require 'csv'
desc "Import data from csv file"
task :import => :environment do
CSV.foreach(Rails.root.join('db', 'data.csv'), :headers => true) do |row|
attrs = {
:first_name => row[0],
:last_name => row[1],
:email => row[2],
:street_address => row[3],
:city => row[4],
:state => row[5],
:zip => row[6],
}
user = User.new(attrs)
if user.save
puts "Saved user #{attrs.inspect}"
else
puts "Unable to save user #{attrs.inspect}"
end
end
end
我运行$: rake import
我得到了:
Unable to save user {:first_name=>"jane", :last_name=>"joe", :email=>"557@djh.com", street_address=>"38776 main", :city=>"los angeles", :state=>"ca", :zip=>"90887"}
Unable to save user {:first_name=>"bob", :last_name=>"billy", :email=>"7663@top.com",:street_address=>"5958 left", :city=>"los angeles", :state=>"ca", :zip=>"98768"}
Unable to save user {:first_name=>"jill", :last_name=>"jilly", :email=>"5857@joc.com", street_address=>"85755 second", :city=>"culver city", :state=>"ca", :zip=>"90332"}
不确定这里有什么显而易见的我在这里丢失了。看起来很简单。谢谢你的帮助!
答案 0 :(得分:1)
只需打印user.errors或user.errors.messages而不是该消息。你会明白为什么你的模型无法保存。