2011-08-22 10 views
9

में वीडियो/छवि के लिए एकल अनुलग्नक का उपयोग करें मैं फ़ाइल अपलोड करने के लिए पेपरक्लिप का उपयोग कर रहा हूं (वीडियो और छवियां)। वीडियो और छवियों दोनों के लिए एक ही अनुलग्नक (स्रोत) का उपयोग किया है।पेपरक्लिप

class Media < ActiveRecord::Base 
    belongs_to :memory 
    validates_attachment_presence :source 
    validates_attachment_content_type :source, 
    :content_type => ['video/mp4', 'image/png', 'image/jpeg', 'image/jpg', 'image/gif'] 
end 

अब मैं विभिन्न मामलों में विभिन्न त्रुटि संदेशों को प्रदर्शित करना चाहता था।

  1. फ़ाइल अपलोड करते समय छवि प्रकार है लेकिन jpg/png/jpeg/gif नहीं है।
  2. जब अपलोड की गई फ़ाइल वीडियो प्रकार लेकिन नहीं mp4

है मैं यह कैसे प्राप्त कर सकते हैं? किसी भी मदद की अत्यधिक सराहना की जाएगी।

उत्तर

22

तो अंततः मुझे समाधान मिला। मैंने उसी

class Media < ActiveRecord::Base 
    belongs_to :memory 
    validates_attachment_presence :source 
    validates_attachment_content_type :source, 
    :content_type => ['video/mp4'], 
    :message => "Sorry, right now we only support MP4 video", 
    :if => :is_type_of_video? 
    validates_attachment_content_type :source, 
    :content_type => ['image/png', 'image/jpeg', 'image/jpg', 'image/gif'], 
    :message => "Different error message", 
    :if => :is_type_of_image? 
    has_attached_file :source 

    protected 
    def is_type_of_video? 
    source.content_type =~ %r(video) 
    end 

    def is_type_of_image? 
    source.content_type =~ %r(image) 
    end 
end 
+0

अच्छा समाधान के लिए 2 सशर्त सत्यापन जोड़ा। बीटीडब्ल्यू। आप प्रति रिकॉर्ड एक अनुलग्नक रखते हैं, इस मामले में कक्षा के नाम को मध्यम नहीं कहा जाना चाहिए? – res