2016-10-31 3 views
0

Ich benutze Edelstein roo. Hier erhalte ich den Fehler alsKeine solche Datei oder Verzeichnis @ rb_sysopen - /tmp/oo_20161031-6508-1bswvam/roo_workbook.xml in Schienen

Keine solche Datei oder das Verzeichnis @ rb_sysopen - /tmp/oo_20161031-6508-1bswvam/roo_workbook.xml

Mein Modell-Codierung ist,

def self.import(file) 
spreadsheet = Roo::Spreadsheet.open(file.path) 
header = spreadsheet.row(1) 
(2..spreadsheet.last_row).each do |i| 
    row = Hash[[header, spreadsheet.row(i)].transpose] 
    subject = find_by(id: row["id"]) || new 
    subject.attributes = row.to_hash 
    subject.save! 
end 

Ende

def self.open_spreadsheet(file) 
case File.extname(file.original_filename) 
    when ".csv" then Roo::CSV.new(file.path, nil, :ignore) 
    when ".xls" then Roo::Excel.new(file.path, nil, :ignore) 
    when ".xlsx" then Roo::Excelx.new(file.path, nil, :ignore) 
    when ".xml" then Roo::XML.new(file.path, nil, :ignore) 
else raise "Unknown file type: #{file.original_filename}" 
end 

Ende

Es nimmt die Parameter,

"utf8"=>"✓", "authenticity_token"=>"mk8vcsZQSd0YvjxM1EOQB8IYlyf6hDgAC/FE8lgGDElbkaPIjtiCNGEynsjfh1KklHErjp+aWWuDzVOZah8PVA==", "file"=>#<ActionDispatch::Http::UploadedFile:0x0055a570f4f8d8 @tempfile=#<Tempfile:/tmp/RackMultipart20161031-6508-18g6ask.xlsx>, @original_filename="TEST.xlsx", @content_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", @headers="Content-Disposition: form-data; name=\"file\"; filename=\"TEST.xlsx\"\r\nContent-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\r\n">, "commit"=>"Import" 

Fehler zeigt im offenen Dateiformat. Was ist die richtige Lösung dafür?
Danke.

+0

Haben Sie es mit einer neuen Datei versucht? –

Antwort

0

Dieser Fehler tritt auf, wenn die Excel-Datei falsch gespeichert wurde. Dies macht das Puzzle, um die Datei von der App zu öffnen. So überprüfen Sie mit Excel speichern oder Pfad oder Version, ist die Lösung für dieses Problem.

Verwandte Themen