2014-04-19 11 views
5

Ich benutze Paperclip Gem, um Dateien hochzuladen. Ich möchte verschiedene Arten von Dateien wie PDF, Doc, Video und Audio hochladen. Ich habe eine Validierung für den Dateityp in meinem Modell. Für Doc, PDF und Video funktioniert es, aber es wird nicht nach Audiodateien gesucht. bitte hilfe. Mein ModellPaperclip Audiodatei-Upload

class Xyz < ActiveRecord::Base 
    attr_accessible :email, :name, :avatar, :CategoryID 
    has_attached_file :avatar 
    validates_attachment_content_type :avatar, :content_type => ['video/mp4','video/avi','Audio/mp3','application/pdf',"application/pdf","application/vnd.ms-excel",  
      "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", 
      "application/msword", 
      "application/vnd.openxmlformats-officedocument.wordprocessingml.document", 
      "text/plain"] 
    #validates_attachment_content_type :avatar, :content_type => ['audio/mp3'] 
end 

Dies ist der Fehler, den ich bekam ...

1 error prohibited this xyz from being saved: 

    Avatar content type is invalid 

Antwort

6

Diese

für jede Art der Datei arbeiten
validates_attachment_content_type :avatar, :content_type => /.*/ 

Sie können auch genaue Inhaltstyp entdecken die Datei mit dem Befehl

file -i path/to/file # or 
file --mime-type path/to/file 

Ich habe auf MP3-Datei laufen in und es kehrte

audio/mpeg 

Also, wenn Sie nur einige Reihe von Inhaltstypen überprüfen möchten, können Sie ‚audio/mpeg‘ in die Liste

validates_attachment_content_type :avatar, :content_type => [ ..., 'audio/mpeg', ...] 
+0

Dank hinzufügen, Es hat perfekt funktioniert – pritesh