2012-05-18 21 views
5

के बाद काम नहीं कर रहा है मैं अपने Grails 1.3.7 ऐप को 2.0.3 में अपग्रेड करने की प्रक्रिया में हूं और मैंने अधिकांश मुद्दों को ठीक किया है। हालांकि, मेरे पास ऐसा कोड है जो काम करने के लिए उपयोग किया जाता है जो उपयोगकर्ता बनाता है और उन्हें डेटाबेस में सहेजता है। कोड सत्यापन को पास नहीं करना चाहिए क्योंकि मैं पहले से ही लिया गया उपयोगकर्ता नाम का पुन: उपयोग कर रहा हूं और उपयोगकर्ता नाम पर एक अनूठी बाधा है। .validate() सत्य लौटाता है, लेकिन तब कोड वास्तव में बम करता है जब user.save() को MySQL अद्वितीय बाधा त्रुटि के साथ बुलाया जाता है।ग्रेल्स प्रमाणीकरण

def submitSignup = { 
     def user = new User(params) 

     user.validate() 
     if (!user.hasErrors()) { 
      ... 
      // This line bombs with the MySql unique constraint I would have expected .validate() to get 
      user.save() 
     } 
} 

User.groovy में:

static constraints = { 
    username(blank: false, unique: true); 
    ... 
} 

कोई भी विचार

एक त्रुटि फेंक देना चाहिए?

संपादित करें: मैं एसीगी से स्प्रिंग सुरक्षा प्लगइन में भी अपग्रेड कर रहा हूं। मुझे नहीं लगता कि यह प्रासंगिक होगा, लेकिन मुझे लगा कि मैं इसका उल्लेख करूंगा। https://github.com/skazzaks/Grails-Unique-Test इस बनाता है यह निश्चित रूप से एक बग की तरह लग रहे:

मैं एक नमूना है कि समस्या पर से ग्रस्त रखा।

+0

क्या यह आपके लिए परीक्षण में विफल रहा है या आप इस मुद्दे पर कैसे आए? मैंने एक साधारण इकाई परीक्षण स्थापित किया है और अद्वितीय बाधा मेरे लिए ठीक से काम कर रही है। –

+0

@JarredOlson यह तब विफल रहा है जब मैंने एप्लिकेशन चलाया और एक नया उपयोगकर्ता सबमिट करने का प्रयास किया (जिसका उपयोगकर्ता नाम पहले ही लिया गया है)। यह मेरे उत्पादन में 1.3.7 संस्करण पर सही ढंग से काम करता है। मुझे यकीन नहीं है कि असमानता के लिए कैसे खाते हैं। – skaz

+0

यह चल रहा था, जबकि एक grails आवेदन के लिए अद्वितीय बाधा जोड़ने के बाद मैं कुछ हद तक संबंधित सत्यापन मुद्दे का सामना कर रहा था। मान्य() उन मानों के बारे में शिकायत नहीं करता है जहां अद्वितीय नहीं है। यह लक्ष्य निर्देशिका को मैन्युअल रूप से हटाने और संकलित करने में मदद करता है। – HumanInDisguise

उत्तर

0

मेरा मानना ​​है कि इस तथ्य यह है कि मेरे डोमेन कक्षाओं src/groovy में हैं की वजह से एक बग है।

3

मैं एक ऐसी ही अजीब सत्यापन समस्या का सामना कर रहा था कुछ दिनों के पहले, जबकि 1.3.7 से 2.0.3 के उन्नयन।

मेरे लिए क्या चाल किया अपने लक्षित निर्देशिका की एक पुस्तिका समाशोधन था। स्पष्ट रूप से सभी वर्गों के पुनर्मूल्यांकन ने एप्लिकेशन को ट्रैक पर वापस रखा।

अगर यह आपके मामले में हालांकि काम करेंगे पता नहीं है, लेकिन एक कोशिश के लायक हो सकता है।

+0

यह चल रहा था, जबकि एक grails आवेदन के लिए अद्वितीय बाधा जोड़ने के बाद मैं कुछ हद तक संबंधित सत्यापन मुद्दे का सामना कर रहा था। मान्य() उन मानों के बारे में शिकायत नहीं करता है जहां अद्वितीय नहीं है। यह लक्ष्य निर्देशिका को मैन्युअल रूप से हटाने और संकलित करने में मदद करता है। – HumanInDisguise

संबंधित मुद्दे