将.csv文件导入rails故障

时间:2012-08-15 12:24:02

标签: ruby-on-rails ruby database csv

我在将.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"}

不确定这里有什么显而易见的我在这里丢失了。看起来很简单。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

只需打印user.errors或user.errors.messages而不是该消息。你会明白为什么你的模型无法保存。