2011-04-08 8 views
8

क्या आपको पता है कि छवि अपलोड करने के लिए कोई तरीका है या नहीं?कैसे पता चले कि कोई छवि अपलोड की गई है या नहीं? - पेपरक्लिप

मेरा मतलब है, मैं एक Foo_Class है, और इस वर्ग के एक संलग्न छवि हो सकता है, लेकिन इसकी उपस्थिति आवश्यक नहीं है। क्या यह जानने का कोई तरीका है कि उस वर्ग के किसी विशेष उदाहरण में छवि है या नहीं?

धन्यवाद!

उत्तर

8

जब आप अपने मॉडल ओर पेपरक्लिप जोड़ा आप पेपरक्लिप विशिष्ट पंक्तियों कहा, मेरा

cover_file_name 
cover_content_type 
cover_file_size 
cover_updated_at 

Foo_Class.cover_file_name.nil? 
12

foo.image? तो रिटर्न सत्य हैं तो मैं जाँच करें कि क्या यह नहीं के बराबर है या नहीं, तो अपलोड की गई फ़ाइल ।

+7

अब यह '' foo.image.exists – Nilloc

+1

क्या हुआ अगर आप निर्धारित किया है 'है:? DEFAULT_URL => 'missing.png''? क्या इसे 'foo.image.exists' के रूप में माना जाएगा? – bershika

+0

उत्तर है: नहीं, यह झूठी – bershika

6

मुझे लगता है कि उचित समाधान file? विधि का उपयोग करने के लिए है।

foo.image.file?

http://rdoc.info/github/thoughtbot/paperclip/Paperclip/Attachment#file%3F-instance_method

का उपयोग कर मौजूद है? यह जांचने के लिए सर्वर से अनुरोध करेगा कि फ़ाइल वहां है या नहीं, जो काफी धीमी हो सकती है, खासकर अगर यह किसी भिन्न सर्वर पर या S3 पर हो।

foo.image_file_name.nil का उपयोग कर? शायद फाइल के समान है? कवर के तहत, लेकिन कहां पेपरक्लिप के कार्यान्वयन पर निर्भर नहीं होना चाहते हैं, जो किसी दिन बदल सकता है।

1

यह मेरा मॉडल

has_attached_file :avatar, :styles => {:logo => "230x50>", :card_image => "180x50>"} 

आप देख सकते हैं छवि

<%= @user.avatar.exists? %> 

यह बूलियन मान वापस आ जाएगी @user एक उपयोगकर्ता अर्थात के लिए अपलोड की गई है में है।

+0

यदि आपकी फ़ाइल S3 पर है, तो यह एक अनुरोध को ट्रिगर करेगा S3। –

0

मान लीजिए आप फू मॉडल में 1 पंक्ति के लिए लगाव (छवि) की उपस्थिति की जांच करना चाहते:

image_present = Foo.first.image? 

यह सच रिटर्न अगर लगाव मौजूद है।

संबंधित मुद्दे

 संबंधित मुद्दे