【发布时间】:2018-12-17 06:14:07
【问题描述】:
下面的代码检查并引发未知文件格式的运行时错误。
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
如果标准格式的标头有任何修改,我如何验证上传的电子表格标头字段并显示错误消息?
【问题讨论】:
-
您想在用户上传文件时验证文件扩展名。实现在一定程度上取决于您用于上传的控制器、模型和库。例如Carrierwave 允许您定义
extension_whitelist。如果扩展名与列表不匹配,则验证失败,用户应该会看到错误。 -
我现在用accept属性来接受xls和xlsx。
-
我如何验证标头值
标签: ruby-on-rails ruby spreadsheet roo