मैं वर्कफ़्लो को समझने के लिए संघर्ष कर रहा हूं जिसका उपयोग निम्नलिखित परिदृश्य में किया जाएगा:त्रुटि स्थिति में एम्बर डेटा मॉडल के साथ आप क्या कर सकते हैं?
उपयोगकर्ता एक मॉडल बनाता है, चलिए इसे उत्पाद कहते हैं। हम उन्हें भरने के लिए एक फॉर्म के साथ प्रस्तुत करते हैं। सत्यापन के अलावा किसी कारण के लिए सहेजने वाली त्रुटियां (टाइमआउट, एक्सेस इनकार इत्यादि ...) एम्बर में, यह मॉडल को एक त्रुटि स्थिति में डाल देता है। यूआई परिप्रेक्ष्य से, मैं बस इतना करना चाहता हूं कि स्क्रीन पर एक संदेश डालें (आसान) और उपयोगकर्ता को फिर से प्रयास करने की अनुमति दें (स्पष्ट रूप से इतना आसान नहीं)।
मैंने इसे कई बार लिखा है कि लेनदेन का पुन: उपयोग नहीं किया गया है। मैं इसके तर्क को समझता हूं। एक नए उत्पाद के मामले में, मैं एक और नया उत्पाद सरल बनाता हूं, मूल उत्पाद (विशेषताओं, रिश्ते) से डेटा में विलय करता हूं और नए उत्पाद के साथ अपने नियंत्रक की सामग्री को प्रतिस्थापित करता हूं। यह कठिन नहीं था और अच्छी तरह से काम करने लगता है, हालांकि (उम्मीद है) एक बेहतर तरीका हो सकता है।
हालांकि, जब मैं एक उत्पाद संपादित कर रहा हूं, तो मैंने एक गंभीर समस्या में भाग लिया है और उपरोक्त समाधान काम नहीं करता है। उत्पाद मॉडल अब त्रुटि स्थिति में है और मुझे इस उत्पाद की एक प्रति प्राप्त करने का कोई तरीका नहीं मिल रहा है जो एक ही स्थिति में नहीं है।
क्या मैं नहीं समझ सकता कि मैं इस मॉडल के साथ त्रुटि स्थिति को हिट करने के बाद क्या कर सकता हूं। मैंने निम्नलिखित कोशिश की है:
रोलबैक: यह काम नहीं करता है। आप त्रुटि स्थिति में लेनदेन को रोलबैक नहीं कर सकते हैं।
पुनः लोड करें: ऊपर जैसा ही है। त्रुटि स्थिति में एक रिकॉर्ड फिर से लोड करने की अनुमति नहीं है।
रिकॉर्ड की एक नई प्रति प्राप्त करें: तो मैं मौजूदा रिकॉर्ड के समान आईडी के साथ App.Product.find (id) आज़माता हूं। यह मुझे त्रुटि स्थिति में, मौजूदा रिकॉर्ड की एक प्रति देता है।
मुझे उम्मीद है कि मैं यहां कुछ मूलभूत याद कर रहा हूं। क्या एक त्रुटि स्थिति (या उस मामले के लिए अमान्य स्थिति) से अच्छी तरह से रिकॉर्ड रोल करना संभव है?
यदि इन मॉडलों की स्थिति को बदलने का कोई आसान तरीका है, तो क्या हमें अभी भी प्रतिबद्ध करने के प्रयासों के लिए एक नया लेनदेन बनाना चाहिए?
इस धागे और इस पैटर्न को देखें। http://stackoverflow.com/a/16471974/1330615 – danielgatis
इस धागे और इस पैटर्न को देखें। http://stackoverflow.com/a/16471974/1330615 – danielgatis
@danielgatis मैं अपने सार है, जो लिंक आप पोस्ट से लिंक किया गया ... मैं देख रहा हूँ क्यों अपने पैटर्न एक के लिए काम करता है पर एक नज़र था नया रिकॉर्ड क्योंकि आप आसानी से असफल हो जाते हैं और एक नया बनाते हैं जब यह मान्य नहीं होता है। क्या इससे आपको उपयोगकर्ता द्वारा दर्ज डेटा खोना नहीं पड़ता है? यह मौजूदा रिकॉर्ड को संपादित करने के लिए भी काम नहीं करेगा। आखिरकार इस प्रश्न पर आपकी टिप्पणी तीन बार पोस्ट करने की आवश्यकता थी? –