Ruby on rails 验证曲别针中的扩展-Ruby on Rails

Ruby on rails 验证曲别针中的扩展-Ruby on Rails,ruby-on-rails,paperclip,paperclip-validation,Ruby On Rails,Paperclip,Paperclip Validation,我发现回形针可以验证文件内容类型,即图像/jpeg,但我想特别验证扩展名。这是因为我使用的是一个模糊的扩展,无法获得一致的内容类型。有人知道这是可行的,还是一个好方法吗?猜猜,没有必要用回形针的方法来验证它。您可以使用以下内容: has_attached_file :attachment validates_format_of :attachment_file_name, :with => %r{\.(docx|doc|pdf)$}i 编辑: 或者,要使用回形针对其进行验证: valid

我发现回形针可以验证文件内容类型,即图像/jpeg,但我想特别验证扩展名。这是因为我使用的是一个模糊的扩展,无法获得一致的内容类型。有人知道这是可行的,还是一个好方法吗?

猜猜,没有必要用回形针的方法来验证它。您可以使用以下内容:

has_attached_file :attachment
validates_format_of :attachment_file_name, :with => %r{\.(docx|doc|pdf)$}i
编辑:

或者,要使用回形针对其进行验证:

validates_attachment_content_type :attachment, :content_type => 'text/plain'

^它将自动生成内容类型不匹配错误。

谢谢,这很有效。简单的跟进:如何自定义错误消息?这似乎不起作用:验证以下内容的格式:附件文件名:with=>%r{\(txt)$}i,:message=>“只能上载.txt文件。”这太奇怪了!但无论如何,请检查“编辑”以获得替代解决方案。这里的第二个替代方案可能也会接受具有MIME类型“text/plain”的其他文件结尾的文件。可以找到许多这样的文件结尾,例如,在。处,这些结尾可以被伪造。除了匹配文件名之外,还要确保以合法的方式对其进行验证。