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

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

试试这样的东西:

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

相关内容

  • 没有找到相关文章

最新更新