我的模型如下:
class Horse < ActiveRecord::Base
def self.import(file)
allowed_attributes = ["name","place"]
spreadsheet = open_spreadsheet(file)
header = spreadsheet.row(1)
(2..spreadsheet.last_row).each do |i|
row = Hash[[header, spreadsheet.row(i)].transpose]
horse = find_by_id(row["id"]) || new
horse.attributes = row.to_hash.slice(*Horse.attribute_names())
horse.save!
end
end
def self.open_spreadsheet(file)
case File.extname(file.original_filename)
when ".csv" then Csv.new(file.path, nil, :ignore)
when ".xls" then Excel.new(file.path, nil, :ignore)
when ".xlsx" then Roo::Excelx.new(file.path, nil, :ignore)
else raise "Unknown file type: #{file.original_filename}"
end
end
end
当我将 Excel 文件上传到我的应用程序时,它会被解析并显示在表格中。我遇到的问题是,每次我上传 Excel 文件时,它都会创建一个新表并将其粘贴到前一个表的下方。
我希望能够上传带有更新数字的 Excel 表单,这些数字将添加到当前表中的数字中。
例如,如果我有一个 Excel 文件,其中包含:
Kane 1
然后我上传一个:
Kane 10
然后我希望表格显示:
Kane 11
在行中。
感谢任何帮助表示赞赏。