मैंने दस्तावेज़ों/वेबसाइटों को देखा है कि कस्टम सत्यापनकर्ताओं को /lib
या /lib/validators
किसी प्रोजेक्ट की निर्देशिका में जाना चाहिए। मैंने पाया है (किसी अन्य पोस्ट का उत्तर पढ़कर) कि वे केवल config/initializers
में काम करते हैं। क्या किसी को पता है, या आधिकारिक दस्तावेज के लिए एक सूचक है जो दिखाता है कि कस्टम वैधता कहाँ रहना चाहिए?रेल 3 कस्टम वैधता कहाँ संग्रहित किया जाना चाहिए?
उत्तर
यदि आप अपने कस्टम सत्यापनकर्ता app/validators
में रखते हैं तो उन्हें आपकी config/application.rb
फ़ाइल को बदलने की आवश्यकता के बिना स्वचालित रूप से लोड हो जाएगा।
मुझे नहीं पता कि इसमें कुछ मणि/कॉन्फ़िगरेशन है जो आपको इसके लिए जोड़ना है, लेकिन रेल के तहत 3.2.8 यह काम नहीं करता है। विशेष रूप से, बस अपने वैधकर्ता को ऐप/वैधकर्ता/??? आरबी में छोड़ना काम नहीं करता है। – Doug
डौग वैधकर्ता फ़ाइल का नाम देने का प्रयास करता है वैसे ही वैधकर्ता वर्ग का नाम दिया जाता है लेकिन अंडरस्कोर किया जाता है: MyCoolValidator ऐप/वैध/my_cool_validator.rb – equivalent8
पर जाता है यह मेरी राय में स्वीकार्य उत्तर होना चाहिए। – DavidJ
कस्टम सत्यापन के बारे में official docs यहां है। AFAIK उन्हें प्रासंगिक मॉडल में रखने के लिए एक अच्छा अभ्यास है।
जब तक कि वे कई मॉडलों पर लागू न हों, इस मामले में आपको उन्हें DRY रहने के लिए कहीं और रखना चाहिए। –
जो संभवतः वे हैं, क्योंकि अन्यथा उनके लिए एक अलग वर्ग बनाने में थोड़ा सा बिंदु है। –
@ जकूब हां है: एकल उत्तरदायित्व सिद्धांत – mattwynne
lib/validators
अब तक का सबसे साफ लगता है। हालांकि आपको उन्हें अपने मॉडल से पहले लोड करना पड़ सकता है, इसलिए शायद प्रारंभकर्ता से।
आप अपने /config/application.rb फ़ाइल को यह भी जोड़ते हैं तो:
config.autoload_paths += %W["#{config.root}/lib/validators/"]
फिर रेल स्वचालित रूप से आपके प्रमाणकों लोड होगा पर शुरू (बस/config/initializers/हैं), लेकिन आप को साफ रखने के अपने वैधकर्ताओं को एक अच्छी, अच्छी तरह से नामित स्थान में रखने की संरचना।
अच्छा विचार है लेकिन आपके कोड को कुछ क्लीनअप की आवश्यकता है: 'config.autoload_paths + =% W (# {config.root}/lib/validators /)' – aNoble
- 1. पुस्तकालयों को रेल 3 में कहाँ जाना चाहिए?
- 2. रेल 3 वैधता और i18n
- 3. beans.xml कहाँ रखा जाना चाहिए?
- 4. वसंत/जेएसपी में, प्रारूपण कहाँ किया जाना चाहिए?
- 5. डिजाइन - कहाँ वस्तुओं पंजीकृत किया जाना चाहिए जब विंडसर
- 6. आईएपीपी खरीद कहाँ संग्रहित हैं?
- 7. कस्टम वैधता
- 8. परिसंपत्ति_होस्ट रेल कहाँ है 3?
- 9. संस्करण स्वतंत्र पायथन पुस्तकालय कहाँ जाना चाहिए?
- 10. "संवाद उपयोगकर्ता द्वारा शुरू किया जाना चाहिए।" Silverlight 3
- 11. क्या देशी सत्यापन रेल में परीक्षण किया जाना चाहिए?
- 12. गिट शाखाओं को कहाँ संग्रहित किया जाता है?
- 13. रेल 3 - कस्टम सत्यापन
- 14. रेल 3 कस्टम अपवाद
- 15. उल्का में इकाई परीक्षण कहाँ रखा जाना चाहिए?
- 16. कहाँ पूरे MVC 3
- 17. सत्यापन तर्क कहां लागू किया जाना चाहिए?
- 18. कहाँ रेल
- 19. रेल 3, पेपरक्लिप - कस्टम इंटरपोलेशंस
- 20. जावा HttpSession विशेषताएँ कहाँ संग्रहित हैं?
- 21. रेल 3 कस्टम जावास्क्रिप्ट घटनाओं को परिभाषित किया गया है?
- 22. रेल 3: उपयोगकर्ता ने कस्टम फॉर्म बनाया?
- 23. रेल 3 में कस्टम लॉगर?
- 24. रेल 3 प्रतिक्रिया_with कस्टम टेम्पलेट
- 25. ओरेकल में जावा कक्षाएं कहाँ संग्रहित हैं?
- 26. पीडीएफ छवि रोटेशन जानकारी कहाँ संग्रहित है?
- 27. स्ट्रेस का उपयोग कैसे किया जाना चाहिए?
- 28. RedirectToRoute का उपयोग कैसे किया जाना चाहिए?
- 29. तर्क अपवाद यूनिट परीक्षण किया जाना चाहिए?
- 30. कोबोल को इंडेंट क्यों किया जाना चाहिए?
कैसे [स्वीकृत उत्तर ध्वज बदलना] [http://stackoverflow.com/questions/5263239/where-should-rails-3- कस्टम- validators-be-stored/6610270#comment16660135_6610270)? – JJD