0

我在下面有一个简单的 CSV 上传器,它正在逐行创建一条新记录(事件)。我还使用了 undecoder gem,并希望to_ascii在 CSV 上传器创建的每条记录中的字段(描述字段)上调用该方法。听起来应该很简单,但我不熟悉遍历 CSV 文件。

上传者:

def self.import(file)
  CSV.foreach(file.path, headers: true, encoding: "windows-1252:utf-8") do |row|
    Event.create! row.to_hash
  end
end

正确的实现方式:

def self.import(file)
  CSV.foreach(file.path, headers: true, encoding: "windows-1252:utf-8") do |row|
    description = row[2]
    row[2] = description.to_ascii

    Event.create! row.to_hash
  end
end

谢谢!

4

1 回答 1

2

尝试这个:

CSV.foreach(file.path, headers: true, encoding: "windows-1252:utf-8") do |row|
    unless row[1].blank?
      description = row[1] # Change 1 for the correct column
      row[1] = description.to_ascii
    end

    Event.create! row
end

如果描述不为空(空),则提取并更新值(描述),然后保存。

row是一个逗号分隔值的数组,例如 CSV 文件name, description, addressrow[1]具有描述的值。

于 2013-08-27T22:14:58.143 回答