मुझे लगता है कि यह महत्वपूर्ण है करने के लिए एक आला जीमेल "पूर्ववत" विधि जब बजाय रिकॉर्ड को नष्ट करने एक कष्टप्रद पॉपअप का कहना है कि, "आपको यकीन है?" प्रदर्शित।रेल में जीमेल शैली "पूर्ववत करें" को लागू करने का सबसे अच्छा तरीका क्या है?
तरह से है कि मैं इस मॉडल है जो टाइमस्टैंप हो जाता है जब विधि को नष्ट वापस लौटने के लिए
def destroy
@foo = Foo.find(params[:id])
@foo.update_attribute(:deleted_at, Time.now)
...
end
कहा जाता है में एक "deleted_at" टाइमस्टैम्प स्तंभ है क्रियान्वित किया है/ पूर्ववत रहा हूँ जब मैं खोज विधि कॉल सिर्फ शून्य
def revert
@foo = Foo.find(params[:id])
@foo.update_attribute(:deleted_at, nil)
...
end
को उसी स्तंभ सेट मैं सिर्फ एक शर्त बंद फिल्टर करने के लिए जोड़ना होगा कम महत्वपूर्ण चीज़ें "हटाए गए"। शायद कुछ समय बाद "हटाए गए" फूओ को वास्तव में नष्ट करने के लिए एक क्रॉन या पृष्ठभूमि कार्य सेट करें।
मेरे लिए काम करता है और कार्यान्वित करने में आसान है, लेकिन मुझे इस बात को लेकर उत्सुकता है कि इस सुविधा को लागू करने का कोई बेहतर तरीका है या नहीं? शायद एक प्लगइन या मणि है जो यह प्रदान करता है कि मुझे नहीं पता?
क्या आपको वाकई परवाह होने पर परवाह है? एक झंडा पर्याप्त नहीं है? –
हाँ, मुझे वास्तव में परवाह नहीं है जब इसे अभी हटा दिया गया था लेकिन वह ज्ञान लाइन के नीचे उपयोगी हो सकता है। वैसे भी मुझे लगता है कि टाइमस्टैम्प एक अच्छा झंडा बनाता है। – JasonOng
मैं सामान्य भावना से सहमत हूं।हालांकि, पूर्व-खाली करने की ज़रूरतों की एक संभावित समस्या यह है कि यह अन्य डेवलपर्स को यह पता लगाने में लगा सकता है कि वह (टाइमस्टैम्प) जानकारी वर्तमान में उपयोग की जाती है। जब इसे वास्तव में कहीं भी उपयोग नहीं किया जाता है, तो यह एक ढीले धागे का प्रतिनिधित्व करता है, जो अक्सर निराशाजनक और अनियमित के लिए समय लेने वाला होता है। – Magne