簡體   English   中英

從Ruby中讀取文件時發生數據轉換錯誤

[英]Data casting error when reading from a file in Ruby

我正在嘗試將數據導入Rails(3.1),並且創建了此rake任務來解析制表符分隔的文本文件(由Mac上的Excel生成),該文件具有標准的Mac OS X行尾。

desc "Import users." 
  task :import_users => :environment do
    File.open("users.txt", "r", '\r').each do |line|
      id, name, age, email = line.strip.split('/t')
      u = User.new(:id => id, :name => name, :age => age, :email => email)
      u.save
    end
  end

但是,當我嘗試運行此rake任務時,出現以下錯誤:

rake aborted!
can't convert String into Integer

我的猜測是,Ruby不喜歡在User類中將Age標題轉換為數字age變量。 有什么辦法可以我(a)跳過文件中的標題行,或者(b)在Ruby中即時進行轉換?

注意:這是將某些數據讀入Ruby的許多嘗試之一。 每當我嘗試讀取數據之前,我似乎從未收到此錯誤。 字符串值總是強制轉換為0.0。

最簡單的解決方案是:

u = User.new(:id => id, :name => name, :age => Integer(age), :email => email)

當然,如果您的標頭在文件的第一行,仍然會出現錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM