2011-01-26 6 views
5

मैं रेल 3 पेपरक्लिप का उपयोग कर रहा हूं और उपयोगकर्ताओं को अनुलग्नक मॉडल में अनुलग्नक अपलोड करने की अनुमति देता हूं।रेल पेपरक्लिप अटैचमेंट्स, यह जानकर कि कोई छवि थंबनेल है या नहीं?

यदि फ़ाइल एक छवि है, तो ऐप छवि पूर्वावलोकन उत्पन्न करता है। अगर फ़ाइल नहीं है, तो यह केवल फ़ाइल अपलोड करता है (कोई छवि पूर्वावलोकन नहीं)।

अब मैं डीबी में सभी अनुलग्नकों की एक सूची प्रदर्शित करना चाहता हूं। तो मैं attachment.attachment (: बड़ा) का उपयोग करता हूं और यह छवि अनुलग्नकों के लिए ठीक काम करता है, लेकिन गैर-छवि अनुलग्नकों के लिए त्रुटियां (स्पष्ट रूप से)।

यह जांचने का एक अच्छा तरीका क्या है कि यह एक छवि अनुलग्नक है या नहीं? यदि नहीं, तो मैं एक मानक स्थिर छवि प्रदर्शित करना चाहता हूं। कोई सुझाव? धन्यवाद

उत्तर

0

शायद आप default_url विकल्प का उपयोग कर सकते हैं? यह दिखाया जाएगा कि वास्तविक थंबनेल मौजूद नहीं है।

http://www.suffix.be/blog/default-image-paperclp

+0

दुर्भाग्य से मैं इस काम करता है नहीं लगता है:

तो तुम जैसे कुछ कर सकता है। यह काम करता है अगर कोई अनुलग्नक नहीं है (यानी: मॉडल में अनुलग्नक संपत्ति शून्य पर सेट है) लेकिन मेरे लिए एक लापता थंबनेल फ़ाइल का पता नहीं लगा। (एफडब्ल्यूआईडब्ल्यू मैं पेपरक्लिप 2.3.1 पर हूं)। अगर कुछ ऐसा है जो मैं संभवतः गलत कर रहा हूं, तो मुझे इसके बारे में जानना अच्छा लगेगा! –

0

आप उस माइग्रेशन को अपने लगाव मेज पर प्रकार तार का एक attachment_content_type क्षेत्र कहते हैं बना सकते हैं। जब आप अनुलग्नक बनाते हैं, तो पेपरक्लिप उस फ़ील्ड में फ़ाइल के प्रकार को संग्रहीत करता है। फिर आप जांच सकते हैं कि फ़ाइल प्रकार "छवि/जेपीईजी" जैसा कुछ है या नहीं।

3

चेक attachment.attachment.attachment_content_type

उदाहरण के लिए, यह हो सकता है: "image/jpeg"

6

यह है कि मैं क्या मेरे विचार में किया जाता है:

<% if !(@attachment.attachment.content_type =~ /^image/).nil? %> 
<%= image_tag @attachment.attachment.url(:small) %> 
<%end%> 

मतलब यह है कि अपने मॉडल लगाव है, और मेरी फाइल, मैं संलग्नक कहा जाता है।

<% if !(@attachment.attachment.content_type =~ /^image/).nil? %> 
<%= image_tag @attachment.attachment.url(:small) %> 
<%else%> 
<%= image_tag "/path/to/image/default.png" %> 
<%end%> 
संबंधित मुद्दे