2011-02-11 4 views
5

मेरे पास पेपरक्लिप द्वारा प्रबंधित कुछ अलग-अलग छवि अनुलग्नकों के साथ एक मॉडल है। हाल ही में हमने मॉडल के व्यवहार को बदल दिया है ताकि इसे soft_as_paranoid का उपयोग करके नरम हटाया जा सके और पुनर्जीवित किया जा सके। सबकुछ बढ़िया काम करता है सिवाय इसके कि जब हम मॉडल को नरम हटा देते हैं, तो पेपरक्लिप संलग्नक को भी हटा रहा है।मैं पेपरक्लिप को act_as_paranoid मॉडल से अनुलग्नक हटाने से कैसे रोकूं?

मैंने पेपरक्लिप दस्तावेज़ों और कोड को देखा है और मुझे इसे रोकने के लिए एक स्पष्ट तरीका नहीं दिख रहा है। मैं पेपरक्लिप को मॉडल पर हटाए गए कॉलबैक को अनदेखा करने और अनुलग्नकों को चारों ओर रखने में सक्षम होना चाहता हूं?

उत्तर

7

पेपरक्लिप अब एक preserve_files का विकल्प है। ओवरराइड अब जरूरी नहीं होना चाहिए।

फ़ाइल संरक्षण के लिए मुलायम को हटाएँ

एक विकल्प आदेश नरम हटाए गए मॉडल के साथ अच्छी तरह से खेलने के लिए में अनुलग्नकों को बचाने के लिये उपलब्ध है। (Acts_as_paranoid, व्यामोह, आदि)

has_attached_file :some_attachment, { 
    :preserve_files => "true", 
} 

इस का सफाया किया जा रहा है जब मॉडल को नष्ट कर दिया जाता है, तो यह अभी भी मौजूद होगा जब वस्तु बाद में पुनर्स्थापित किया जाता है से some_attachment कर पाएगा।

https://github.com/thoughtbot/paperclip#file-preservation-for-soft-delete

+0

बहुत बढ़िया! इसे अद्यतन करने के लिए धन्यवाद (और वापस आने और इसे देखने के लिए इतनी देर लगने के लिए मेरी माफी)। –

+0

कोई और नोटिस करता है कि पेपरक्लिप अभी भी इस कॉन्फ़िगरेशन विकल्प के साथ रिकॉर्ड के सभी महत्वपूर्ण अनुलग्नक विशेषताओं को बाहर कर रहा है? तो पुनर्स्थापित करने के लिए 'हटाए गए_एट' विशेषता को साफ़ करना पर्याप्त नहीं है क्योंकि सभी अनुलग्नक गुण अब 'शून्य 'हैं। –

2

पागल आप इसे पूछने के तुरंत बाद अपने प्रश्न का उत्तर कितनी बार पाते हैं। अगर किसी और के पास एक ही समस्या है, तो मैं इसे यहां छोड़ रहा हूं, या शायद किसी के पास इसका बेहतर समाधान है। मेरे लिए क्या काम किया गया था predide कॉलबैक का जवाब देने के लिए विधि पेपरक्लिप उपयोगों को ओवरराइड करना था। मैंने इसे अपने कोड में गिरा दिया और अब यह मेरे अनुलग्नकों को संरक्षित करता है ताकि अगर मैं मॉडल को बाद में हटा दूं तो वे वहां हैं।

protected 

    def destroy_attached_files 
    logger.error "-------------- This is me NOT destroying my attachments" 
    end 
संबंधित मुद्दे