2012-01-24 4 views
0

rails(3.1)にデータをインポートしようとしていて、タブ区切りのテキストファイル(ExcelをMacで生成)を解析するためにこのrakeタスクを作成しました。 Mac OS Xの行末。私はこのrakeタスクを実行しようとするとRubyでファイルを読み込むときのデータキャストエラー

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 aborted! 
can't convert String into Integer 

私の推測では、Rubyが私の中の数値の年齢変数に向かう年齢を変換する好きではないということですユーザークラス。 (a)ファイルのヘッダー行をスキップするか、または (b)Rubyでこのキャストをオンザフライで実行できますか?

注:これは、いくつかのデータをRubyに読み込むための多くの試みの1つです。以前にデータを読み込もうとしたときは、このエラーが発生したことはありませんでした。文字列の値は常に0.0にキャストされました。心にして来

答えて

0

最も単純ソリューション、:もちろん

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

あなたがそこにあなたのヘッダを得た場合、あなたはまだ、ファイルの最初の行にエラーがあります。

関連する問題