2010-08-06 16 views
40

रेल 3 में बंदर पैच का पसंदीदा तरीका क्या है?रेल में बंदर पैचिंग 3

मैं सिर्फ स्ट्रिंग क्लास में एक विधि जोड़ना चाहता हूं। मैं और अधिक देख रहा हूं कि फ़ाइल कहां रखना है।

उत्तर

72

प्रारंभिक निर्देशिका उन सभी छोटे स्क्रैप एकत्र करने के लिए एक अच्छी जगह है। चूंकि मैं कोर एक्सटेंशन के साथ थोड़ी अधिक ओवरबोर्ड पर जाता हूं, इसलिए मुझे वहां "फ़ोल्डर" नामक फ़ोल्डर बनाना होता है और उन्हें वहां टॉस करना पड़ता है।

तो, /config/initializers/string_extension.rb, या /config/initializers/extensions/string.rb, या कुछ इसी तरह का प्रयास करें। किसी भी तरह से, आप बस बाद में उनके बारे में भूल सकते हैं - रेल के लिए उन्हें आपके लिए आवश्यकता होगी, इसलिए आपको इसे स्वयं करने की आवश्यकता नहीं है।

+0

आप इस ब्लॉग के बाद उन्हें व्यवस्थित भी कर सकते हैं, बंदर पैच को डीबग करना और बनाए रखना आसान बनाता है: http://www.justinweiss.com/blog/2015/01/20/3-ways-to-monkey-patch-without- गड़बड़ करना/ –

0

यदि यह कक्षा विशिष्ट है तो आप उस कक्षा में विधि को फिर से परिभाषित कर सकते हैं जिसके लिए आपको इसकी आवश्यकता है। अन्यथा, यह पूरी तरह निर्भर करता है कि ऐप का कौन सा हिस्सा आप अपनी स्ट्रिंग विधि का उपयोग करना चाहते हैं। किसी विधि को फिर से परिभाषित करने के लिए कक्षा खोलने के उदाहरण के रूप में: http://codepad.org/Cj1LHmQj लेकिन, शायद आप पहले ही जानते थे कि आप ऐसा कर सकते हैं।

+0

यदि आप अपनी स्ट्रिंग विधि को कई स्थानों पर उपलब्ध करना चाहते हैं, तो मॉड्यूल पर विचार करें और जहां आवश्यक हो वहां lib निर्देशिका में डाल दें। –

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