繁体   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