我有一个上传CSV文件,我解析像这样:红宝石 - 从CSV插入条目到数据库
CSV.foreach(@my_file.file.path) do |row|
puts row[1]
end
传入的CSV文件至少有以下栏目:“ID”,“姓名”, “号码”,“电话”和“食物”。
我想这样做:
CSV.foreach(@my_file.file.path) do |row|
//find the columns in "row" associated with "id", "name", "number"
//even though I don't know definitively which column they will be in
//for example, "name" may be the 2nd or 3rd or 4th column (etc)
//insert into my_table values(id, name, number)
end
注意,CSV文件将永远有列名的第一行,但是从文件到文件,这些列的顺序可能会有所不同。
您需要CSV文件中的第一行来命名列,否则如何处理记录? – Raffaele
第一行确实有列名,但列的顺序可能会因文件而异 – CodeGuy