Rails ROO Gem Excel загрузить проверить расширение файла
Приведенный ниже код проверяет и вызывает ошибку времени выполнения для неизвестных форматов файлов.
def open_spreadsheet
case File.extname(file.original_filename)
when ".csv" then CSV.new(file.path)
when ".xls" then Roo::Excel.new(file.path, nil, :ignore)
when ".xlsx" then Roo::Excelx.new(file.path)
else
raise "Unknown file type: #{file.original_filename}"
end
end
Я хочу показать сообщение об ошибке, а не ошибку времени выполнения.
attr_accessor :file
Как я могу проверить загруженное поле заголовка электронной таблицы и показать сообщение об ошибке, если есть какие-либо изменения в заголовке из стандартного формата?
1 ответ
Попробуйте что-то вроде этого:
def open_spreadsheet
case File.extname self.file.original_filename
when ".xls"
Roo::Excel.new self.file.path
when ".xlsx"
Roo::Excelx.new self.file.path
else
self.errors[:file] << I18n.t("errors.messages.invalid_file_format", extension: File.extname(file.original_filename))
return nil
end
end
Вы можете жестко закодировать сообщение там, но приятно иметь его в правильном теге I18n