2

我在将 .csv 文件导入 rails (3.2.6) 时遇到问题。这是我第一次使用 csv 措辞,我一般是新手。我使用设计生成用户模型,不知道这是否与此问题有关。我只是在 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"}

不确定我在这里是否遗漏了一些明显的东西。这似乎很简单。谢谢你的帮助!

4

1 回答 1

1

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

于 2012-08-19T15:33:49.123 回答