如何使用paperclip gem上传excel电子表格?

时间:2018-01-11 18:13:07

标签: ruby-on-rails paperclip

您可以将excel文件(.xls)上传到带有paperclip gem in rails的s3吗?

我搜索了their docs并查看了content_type的源代码,我只看到了图片,pdf和其他类型,但csvxls没有。此外,任何有关使用回形针上传电子表格的示例或指南的内容似乎都明显缺席。例如,thinkbot有blog post说“你可以上传任何东西”,所以我想相信你可以上传excel电子表格。

2 个答案:

答案 0 :(得分:0)

您可以使用has_attached_file并使用matches进行验证,例如:

has_attached_file :file
validates_attachment_file_name :file, matches: [/\.xls?$/, /\. xlsx?$/, /\.csv?$/]

答案 1 :(得分:0)

这与您对其他类型文档的操作相同。

has_attached_file :sheet
validates_attachment :sheet, presence: true,
                      content_type: {
                        content_type: [
                          "application/vnd.ms-excel",
                          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
                        ]
                      }

或者您也可以使用匹配来匹配扩展名。

validates_attachment_file_name :sheet, matches: [/.xls\z/i, /.xlsx\z/i, /.csv\z/i]