Rails ROO Gem Excel загрузить проверить расширение файла - PullRequest
0 голосов
/ 17 декабря 2018

Приведенный ниже код проверяет и вызывает ошибку времени выполнения для неизвестных форматов файлов.

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 Ответ

0 голосов
/ 17 декабря 2018

попробуйте что-то вроде этого:

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

...