验证Paperclip中的扩展 - Ruby on Rails

Geo*_*off 9 ruby-on-rails paperclip paperclip-validation

我发现Paperclip可以验证文件内容类型,即image/jpeg,但我想专门验证扩展名.这是因为我正在使用一个不起作用的扩展,它不会获得一致的内容类型.任何人都知道这是可行的,还是一个很好的方法来做到这一点?

小智 16

猜猜,没有必要用paperclip的方法验证它.您可以使用以下内容:

has_attached_file :attachment
validates_format_of :attachment_file_name, :with => %r{\.(docx|doc|pdf)$}i
Run Code Online (Sandbox Code Playgroud)

编辑:

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

validates_attachment_content_type :attachment, :content_type => 'text/plain'
Run Code Online (Sandbox Code Playgroud)

^它会自动生成内容类型不匹配错误.

  • 谢谢,这很有效.简单的跟进:如何自定义错误消息?这似乎不起作用:validates_format_of:attachment_file_name,:with =>%r {\.(txt)$} i,:message =>"只能上传.txt文件." (3认同)