> rvm list
rvm rubies
=* ruby-1.9.2-p290 [ i686 ]
ruby-1.9.3-p194 [ i686 ]
> rails -v
Rails 3.1.1
संबंधित है, लेकिन जवाब नहीं दिया: Is there a Rails Console command (Rails 3+) to reload changed code?मैं रेल कंसोल में मॉडल कैसे पुनः लोड करूं?
मैं रेल सांत्वना कोशिश करते हैं और यह पता लगाने क्यों अपने मॉडल में एक विधि कहा जाता है नहीं हो पाने का उपयोग कर रहा हूँ। मॉडल ./app/models/product.rb में है। मैं self.trim_history
से trim_history
के रूप में बुलाया जाने वाला एक तरीका बदल रहा हूं। मैं अभी भी self.do_stuff
या बस do_stuff
के रूप में एक विधि को कॉल करने के लिए अपने सिर को लपेट रहा हूं।
अच्छी तरह से इसे समझने के दौरान मैंने reload!
के साथ एक समस्या में भाग लिया है। मेरी समझ यह थी कि reload!
फिर से सभी मॉडलों और नियंत्रकों को लोड करेगा, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। जब मैं अपना कोड डीबग करता हूं, तो जिस लाइन को मैंने बदल दिया है do_stuff
अभी भी डीबगर में self.do_stuff
के रूप में दिखा रहा है।
मैंने reload!
के साथ इसे हल करने का प्रयास किया है, कोई फिक्स नहीं। मैंने पुनः लोड करने के बाद डेटाबेस से ऑब्जेक्ट को फिर से लोड किया है, कोई फिक्स नहीं। मैंने सीधे मॉडल को load './app/models/product.rb'
से लोड किया है, फिर ऑब्जेक्ट को डीबी से लोड किया है, कोई फिक्स नहीं है। मैंने सत्यापित किया है कि ऑब्जेक्ट tail
के साथ बदला जा रहा है।
रेल कंसोल में मॉडल को फिर से लोड करने का सबसे अच्छा तरीका क्या है? क्या मेरे मॉडल कोड में हर बार कंसोल को फिर से शुरू करना होगा? कंसोल को फिर से लोड किए बिना सभी मौजूदा मॉडल और उनके कोड को डंप करने का कोई तरीका है?
संपादित करें: यह अजनबी हो गया। अब मुझे संदेह है कि मेरा कोड पुनः लोड किया जा रहा है लेकिन डीबगर नए कोड को प्रतिबिंबित नहीं कर रहा है। जब मैं कोड के माध्यम से कदम उठाता हूं, तो पुराना कोड होता है, लेकिन नया कोड निष्पादित किया जा रहा है। मैंने raise
जोड़कर इसका परीक्षण किया - raise
डीबगर में कभी नहीं दिखाता है लेकिन यह उठाया जाता है। वाट?
क्या मुझे पुनः लोड किए गए कोड को देखने के लिए डीबगर के साथ कुछ करने की ज़रूरत है? यह एक बग की तरह दिखता है ...
क्या आप कक्षा में या कक्षा के उदाहरण पर विधि को कॉल करने का प्रयास कर रहे हैं? –
@ChrisSchmitz कक्षा का उदाहरण; मैं स्वयं को तब तक कोड के साथ गड़बड़ कर रहा हूं जब तक मैं इसे समझ नहीं पा रहा हूं। – jcollum
रूबी के लिए कई अलग-अलग डिबगर्स हैं, यह निर्दिष्ट करने में सहायक होगा कि आप किस का उपयोग कर रहे हैं। –