2012-06-15 15 views
5

application.rb में, मैंपुनः लोड रेल initializers

config.autoload_paths += %W(#{config.root}/lib 

तो जब मैं lib के तहत एक वर्ग को संशोधित, मेरे कोड को फिर से लोड किया गया है।

हालांकि, जब मैंने स्वत: लोड करने के लिए कॉन्फ़िगर/प्रारंभकर्ता जोड़ने की कोशिश की, तो मैंने देखा कि मेरा कोड अपडेट नहीं हुआ है।

यदि मैं स्ट्रिंग क्लास के लिए एक एक्सटेंशन लिख रहा हूं, तो मुझे हर बार जब मैं अपना कोड संशोधित करता हूं तो रेल को पुनरारंभ करना होगा।

कृपया सलाह दें?

उत्तर

5

प्रारंभकर्ता केवल रेलों को शुरू करते समय लोड होते हैं (और कभी पुनः लोड नहीं होते हैं)। config/initializers में टिंकरिंग करते समय आप हर बार रेल को पुनरारंभ करना होगा।

बेशक आप यह सुनिश्चित कर सकते हैं कि आपका कोड /lib में परिभाषित किया गया है ताकि आप अभी भी सुनिश्चित कर सकें कि यह आपके परीक्षण-सूट का उपयोग कर काम करता है।

उदा। lib/speaker.rb में लिखने

module Speaker 
    def speak 
    puts "Ahum, listen: #{self.to_s}" 
    end 
end 

और अपने प्रारंभकर्ता में आप तो जैसे

class String 
    include Speaker 
end 

कुछ कर सकते हैं हालांकि यह अभी भी केवल लोड हो जाएगी जब रेल शुरू करने, आप को विकसित करने और अधिक आसानी से अपने मॉड्यूल परीक्षण कर सकते हैं।

उम्मीद है कि इससे मदद मिलती है।

+1

बहुत बहुत धन्यवाद! – Abdo

3

प्रारंभकर्ता फ़ाइलों को केवल एक बार लोड किया जाता है जब रेल सर्वर शुरू होता है। प्रारंभकर्ताओं के मान बदलते समय सर्वर को पुनरारंभ करें। अधिक जानकारी के लिए रेल initialization guides देखें।

परिवर्तन

पर ऑटो पुन: लोड 'lib' आप ऑटो lib फ़ाइलों को फिर से लोड कर सकते हैं। लिंक का पालन करें Autoload and Reload lib directory on change

रेल को कॉन्फ़िगर करने में अनुप्रयोग: config.reload_classes_only_on_change ट्रैक की गई फ़ाइलों को बदलने पर केवल कक्षाओं को पुनः लोड करने या अक्षम करने में सक्षम बनाता है। डिफ़ॉल्ट रूप से ऑटोलोड लोड पथ पर सबकुछ ट्रैक करता है और सत्य पर सेट होता है। यदि config.cache_classes सत्य है, तो इस विकल्प को अनदेखा किया गया है।

+0

यही मेरा प्रश्न था; मैं सर्वर को पुनरारंभ नहीं करना चाहता था। मैं अपने कोड को डीबग करने का एक बेहतर तरीका चाहता था। – Abdo

+0

(मैंने अभी -1 देखा; यह मुझे नहीं था)) – Abdo

+0

पॉकुल संपादित करने के लिए धन्यवाद –

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