【问题标题】:Trouble Importing Data into Rails, Strange Looping无法将数据导入 Rails,奇怪的循环
【发布时间】:2012-02-17 13:13:04
【问题描述】:

我正在尝试将数据导入 rails (3.1),并且我创建了这个 rake 任务来解析 CSV 文件(由 Mac 上的 Excel 生成)

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

但是,当我运行 rake 任务时,只会导入 CSV 文件的第一行。除了第一行之外,它不会遍历文件中的每一行。谁能告诉我为什么?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3.1 rake


    【解决方案1】:

    不确定,但我认为这里发生的是每个代表每个文件而不是每一行。由于只有一个文件,这可能无法按预期工作。我会尝试使用 CSV 解析器:

    CSV.foreach("users.csv") do |line|
          id, name, age, email = line
          u = User.new(:id => id, :name => name, :age => age, :email => email)
          u.save
    end
    

    【讨论】:

    • 感谢您的回答,我的问题实际上是行尾(Mac 上的 Excel 无法以 Ruby 的方式对其进行编码)
    【解决方案2】:

    使用 ruby​​ 解析任何类型的文本文件时,请务必检查编码和/或行尾以确保它是 Ruby 喜欢的格式。

    在这种情况下,Ruby 不喜欢 Mac OS X 的行尾格式,但喜欢 Unix 的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      • 1970-01-01
      相关资源
      最近更新 更多