यह मेरे लिए कोई मतलब नहीं है कि validate
एक वस्तु मांगने से पहले कहा जा करने की आवश्यकता होगी कि क्या यह hasErrors
(या save
उचित डोमेन वस्तुओं, जो कवर के तहत validate
कॉल के लिए)। इस संदर्भ में मान्य का अर्थ है "जांचें कि यह ऑब्जेक्ट मान्य है या नहीं, अगर कोई त्रुटि नहीं है"।
वैकल्पिक रूप से GORM कार्यान्वयन को किसी ऑब्जेक्ट में कोई भी बदलाव करने के लिए validate
पर कॉल करना होगा, जो मेरे लिए कम वांछनीय व्यवहार होगा, क्योंकि इसमें बहुत से काम अक्सर और अनावश्यक रूप से किए जा सकते हैं (उनमें से कुछ बाधाएं बहुत काम शामिल है)।
धारा 7.2 की शुरुआत स्पष्ट रूप से स्पष्ट करती है "डोमेन क्लास को सत्यापित करने के लिए आप किसी भी उदाहरण पर मान्य विधि को कॉल कर सकते हैं"। यह भी कहता है कि "Grails के भीतर अनिवार्य रूप से सत्यापन के 2 चरण होते हैं, पहला चरण डेटा बाध्यकारी होता है जो तब होता है जब आप अनुरोध पैरामीटर को किसी उदाहरण पर बाध्य करते हैं ... इस बिंदु पर आपको त्रुटियों की संपत्ति में पहले से ही त्रुटियां हो सकती हैं टाइप रूपांतरण (जैसे स्ट्रिंग्स टू डेट्स को कनवर्ट करना)। आप इन्हें जांच सकते हैं और एरर एपीआई का उपयोग करके मूल इनपुट वैल्यू प्राप्त कर सकते हैं ... सत्यापन के दूसरे चरण तब होते हैं जब आप मान्य या सहेजते हैं। यह तब होता है जब Grails बाध्यता को मान्य करेगा मान आपके द्वारा परिभाषित बाधाओं को दोबारा शुरू करते हैं। "
documentation for hasErrors
यह भी उल्लेख करता है। जब आप documentation site पर हों, तो आप बाईं ओर नेविगेशन फ्रेम में विधि कॉल ढूंढकर इसका उपयोग कर सकते हैं। मैं हमेशा इन और साथ ही अधिक वर्णनात्मक उपयोगकर्ता मार्गदर्शिका पृष्ठों को देखने की सलाह देता हूं, क्योंकि वे अक्सर थोड़ा और विवरण देते हैं। Here's the page for the validate
method भी।
मुझे कभी भी validate
पर कॉल करने में कोई समस्या नहीं हुई - यह मेरे लिए बहुत स्पष्ट है और मैं उस बिंदु का चयन कर सकता हूं जहां सभी काम किए जाते हैं और मैं सत्यापन के लिए तैयार हूं। मुझे कहीं भी इस व्यवहार को बदलने का विकल्प नहीं दिख रहा है, लेकिन यदि आप validate
को स्वचालित रूप से या कुछ स्थितियों के तहत बुलाए जाने के लिए चाहते हैं, तो शायद आप कक्षा में invokeMethod
जोड़कर कुछ ग्रोवी मेटा प्रोग्रामिंग जादू का उपयोग कर सकते हैं और इसे validate
पर कॉल करने से पहले कॉल कर सकते हैं कुछ कॉल पर here और here देखें। (यकीन नहीं है कि मैं इसकी सिफारिश करता हूं! और ध्यान रखें कि आपकी कक्षा अब जीओआरएम सत्यापन फ्रेमवर्क के भीतर उपयोग होने पर निर्भर होगी, क्योंकि validate
विधि अन्यथा मौजूद नहीं हो सकती है)।
स्रोत
2010-12-28 09:02:01
आपके सावधानीपूर्वक उत्तर के लिए बहुत धन्यवाद, मैं इसे अब समझता हूं। –
वैसे ... पीटर लेडब्रुक (एक्शन बुक में उत्कृष्ट Grails के लेखकों में से एक) ने GORM Gotchas पर लेखों की एक बड़ी श्रृंखला लिखी है - यह सब कुछ के बारे में कुछ विवरण के आसपास अपने सिर को पाने के लिए बहुत मूल्यवान है काम करता है: [भाग 1] (http://blog.springsource.com/2010/06/23/gorm-gotchas-part-1/), [भाग 2] (http://blog.springsource.com/2010/ 07/02/gorm-gotchas-part-2 /) और [भाग 3] (http://blog.springsource.com/2010/07/28/gorm-gotchas-part-3/)। –