0

下面的代码检查并引发未知文件格式的运行时错误。

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

如果标准格式的标头有任何修改,如何验证上传的电子表格标头字段并显示错误消息?

4

1 回答 1

0

尝试这样的事情:

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 标记中

于 2018-12-17T07:21:28.353 回答