2011-07-02 13 views
9

私は、Paperclipがファイルのコンテンツタイプ(image/jpeg)を検証できることを知りましたが、拡張機能を検証する必要があります。これは、一貫したコンテンツタイプを取得しないわかりにくい拡張機能を使用しているためです。これが実行可能か、これを行う良い方法があれば誰でも知っていますか?Paperclipの拡張機能を検証する - Ruby on Rails

答えて

16

推測すると、ペーパークリップの方法で検証する必要はありません。クリップでそれを検証するために、また

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' 

^それは自動的にコンテンツタイプの不一致エラーが発生します。

+3

ありがとうございました。簡単なフォローアップ:どのようにエラーメッセージをカスタマイズできますか?これはうまくいかないようです:validates_format_of:attachment_file_name、:with =>%r {\。(txt)$} i、:message => ".txtファイルのみをアップロードできます。 – Geoff

+0

それは変です!しかし、とにかく別の解決法のために編集をチェックしてください。 –

+0

ここでの2番目の方法は、おそらくMIMEタイプが "text/plain"の他のファイルエンディングを持つファイルも受け入れます。そのようなファイルの終了の数は、例えば、 [http://reference.sitepoint.com/html/mime-types-full](http://reference.sitepoint.com/html/mime-types-full)]を参照してください。 – lossius

関連する問題