मान लीजिए प्रत्येक Project
has_many
Tasks
।केवल has_many एसोसिएशन में परिवर्तन सहेजें जब आप मूल ऑब्जेक्ट को सफलतापूर्वक सहेजते हैं?
अगर मैं
some_project.tasks = list_of_tasks
some_project.save
परियोजना के कार्यों अपडेट कर दिया है, भले ही बचाने में विफल रहता है है। यदि list_of_tasks
में नए रिकॉर्ड शामिल हैं, तो प्रोजेक्ट के कार्यों को हटा दिया गया है यदि सहेजने में विफल रहता है! डब्ल्यूएचओए!
यदि सहेजने में विफल रहता है, तो परियोजना के साथ गड़बड़ करना शुरू करने से पहले परियोजना के समान कार्य होना चाहिए। मैं यह व्यवहार कैसे प्राप्त करूं और यह डिफ़ॉल्ट क्यों नहीं है?
यह काम करता है, लेकिन इस दृष्टिकोण का अर्थ है कि जब भी मैं अपने पूरे एप्लिकेशन में कार्यों को अपडेट करता हूं तो मुझे इसे लेनदेन में लपेटना याद रखना होगा (और मुझे यकीन है कि मैं भूल जाऊंगा)। अगर मैं डीआरवाई फैशन में 'प्रोजेक्ट' मॉडल में इस व्यवहार को समाहित कर सकता हूं तो यह बेहतर होगा। –
ठीक है, एक विधि 'replace_tasks (new_tasks)' को परिभाषित करें जो कि बस करता है – glebm