下面的代码检查未知文件格式并引发运行时错误。
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标签中