2011-10-20 6 views
27

रेल कंसोल के उपयोग के संबंध में, जब मैं मॉडल पर कुछ बदलाव करता हूं, तो क्या मुझे उस बदलाव को प्रतिबिंबित करने के लिए हर बार रेल कंसोल को फिर से लोड करने की आवश्यकता होती है? मैं नीचे के रूप में कुछ अतिरिक्त विशेषता जोड़ना चाहते हैंरेल कंसोल

class Article < ActiveRecord::Base 
    validates :title, :presence => true 
    validates :body, :presence => true 
end 

बाद में,:

उदाहरण के लिए, मैं इस प्रकार अपने मूल कोड है।

class Article < ActiveRecord::Base 
    validates :title, :presence => true 
    validates :body, :presence => true 

    def long_title 
    "#{title} - #{published_at}" 
    end 
end 

क्या इसे "पुनः लोड" आदेश चलाने की आवश्यकता है? हर बार "long_title" विधि कॉल करने में सक्षम होने के लिए? अन्यथा, मुझे एक त्रुटि मिल जाएगी क्योंकि विशेषता परिभाषित नहीं की गई है। और हमें इसे मैन्युअल रूप से करने की आवश्यकता क्यों है?

उत्तर

44

हां, आपको reload! पर कॉल करने की आवश्यकता है क्योंकि इससे लोड किए गए लोड किए गए स्थिरांक साफ़ हो जाएंगे और उन्हें कंसोल में संदर्भित किया जाएगा क्योंकि उन्हें लोड किया जाएगा।

यदि आपके पास reload! से पहले पुरानी वस्तुएं हैं तो आपको इन व्यक्तिगत वस्तुओं पर reload पर कॉल करने की आवश्यकता होगी या नई ऑब्जेक्ट्स ढूंढें और यदि आप नई विधि को आजमाने की कोशिश करना चाहते हैं तो उनके साथ काम करना होगा।

एक विकल्प के रूप में, मैं वास्तव में एक परीक्षण ढांचे जैसे आरएसपीईसी की तलाश करने की सिफारिश करता हूं जो आपको दोहराने योग्य परीक्षण और आपके आवेदन के लिए सुरक्षा नेट देता है।

ऐसा लगता है कि आप कंसोल का उपयोग अपने आवेदन में नई कार्यक्षमता के लिए एक परीक्षण उपकरण के रूप में करने की कोशिश कर रहे हैं, जो आरएसपीईसी बेहतर है। कंसोल प्रयोग के लिए वास्तव में अच्छा है।

4

rails console के बाद वे संदर्भित किया गया है नहीं पुनः लोड कक्षाएं करता है।

अगर ऐसा होता है तो यह फ़ाइल सिस्टम को कॉल करने के लिए कहता है कि प्रत्येक आदेश के लिए कौन सी फाइलें बदली गई हैं।

rails server दूसरी ओर विकास मोड में अनुरोधों के बीच बदले गए वर्गों को फिर से लोड करेगा।

मुझे लगता है कि आप rails console प्रारंभ समय के कारण कंसोल खोल रहे हैं। मुझे यकीन नहीं है कि आपका आवेदन क्या है, और यह सुनिश्चित नहीं है कि विकास के दौरान कंसोल क्यों खुला है। हालांकि, यदि आप परिवर्तनों को सत्यापित करने का प्रयास कर रहे हैं, तो मैं इकाई परीक्षण या rspec के साथ परीक्षण की अनुशंसा कर सकता हूं और उस समय आप स्टार्ट अप समय को तेज करने के लिए स्पार्क का उपयोग कर सकते हैं।