我的種子文件看起來像這樣...Rails的Seed.rb ncoding :: UndefinedConversionError:導入CSV
csv_file_path = 'db/coned.csv'
count = 0
CSV.foreach(csv_file_path) do |row|
row = Section.new({
:supervisor => row[0],
:catagory => row[1],
:title => row[2],
:description=> row[3],
:days => row[4],
:start_date => row[5],
:end_date => row[6],
:start_time => row[7],
:end_time => row[8],
:course_id => row[9],
:room => row[10],
:building => row[11],
:location => row[12],
:tuition => row[13],
:lab_fee => row[14],
:insurance_fee => row[15],
:technology_fee => row[16]
})
row.save!
puts "Added row #{count}"
count+=1
end
...當我運行耙分貝我得到這個錯誤:種子
耙中止! Encoding :: UndefinedConversionError:從ASCII-8BIT到UTF-8的「\ xC2」:INSERT INTO「sections」(「building」,「catagory」,「course_id」,「created_at」,「days」,「description」,「 END_DATE」, 「END_TIME」, 「insurance_fee」, 「lab_fee」, 「位置」, 「房間」, 「起始日期」, 「START_TIME」, 「監督員」, 「technology_fee」, 「標題」, 「交學費」, 「的updated_at」 )VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) /home/johnmlocklear/.rvm/ gem/ruby-1.9.2-p320/gems/activerecord-3.2.11/lib/active_record/connection_adapters/sqlite_adapter.rb:208:在encode' /home/johnmlocklear/.rvm/gems/ruby-1.9.2-p320/gems/activerecord-3.2.11/lib/active_record/connection_adapters/sqlite_adapter.rb:208:in
type_cast'
任何有關我如何才能捕捉到這個錯誤和想法取出該行並繼續導入行。或者可能是某種強制編碼?
感謝名單......那工作(那種)。添加rescure允許導入所有數據,因此它看起來像是錯誤,但在控制檯中看不到「#line row.inspect}中的」Encountred error「。我在想,如果我在這裏需要一個提示語句嗎? – Lumbee
這取決於'誰'正在運行此代碼。如果你在控制檯運行它,用'$ stderr.puts'替換'Rails.logger.error'。 – pierallard
..超過常規......有效! – Lumbee