2010-01-12 17 views
7

मैं lib dir में परिभाषित मॉड्यूल के बारे में एक पेचीदा मुद्दा हैरेल lib शामिल

मैं दो फ़ाइलों

#lib/authentication.rb 

module Authentication 

end 


#lib/test_module.rb 

module TestModule 

end 

है अपने आवेदन नियंत्रक में मैं

class ApplicationController < ActionController::Base 
    include Authentication 
    include TestModule 
end 

प्रमाणीकरण मॉड्यूल लोड है ठीक से लेकिन टेस्ट मॉड्यूल

मुझे "निरंतर स्थिर एप्लिकेशन कंट्रोलर :: टेस्ट मॉड्यूल "

मैं स्टंप हो गया हूं ... कोई भी?

संपादित करें: क्या किसी को पता है कि मैं इसे डीबग करने के लिए कहां देख सकता हूं?

+0

बेवकूफ सवाल, लेकिन क्या आपने अपना सर्वर पुनरारंभ किया? यदि प्रक्रिया को पुनरारंभ नहीं करता है तो इसे ठीक करें? –

+0

yup मैंने पुनरारंभ करने का प्रयास किया। सर्वर के बाद शुरू करने में विफल रहता है। – stellard

उत्तर

5

अपने ApplicationController फ़ाइल के शीर्ष

+2

ने इसे आजमाया और यह मुझे लोड करने के लिए ऐसी कोई फ़ाइल नहीं है - lib/test_module (MissingSourceFile) – stellard

+2

क्या आप सुनिश्चित हैं कि फ़ाइल सही जगह पर है ?? चूंकि आवश्यकता कथन इसे खोजने में असमर्थ है ... – Veger

+1

मुझे यकीन था कि यह सही जगह पर था लेकिन मैंने दोबारा जांच की। किसी कारण से फ़ाइल नाम test_module.r था? बी। यह अजीब है क्योंकि यह टेक्स्टमैट (जहां मैंने फ़ाइल बनाई है) में .rb के रूप में प्रदर्शित होता है। मैंने फ़ाइल का नाम बदल दिया और यह काम किया। इस पर आपके समय के लिए धन्यवाद, मैं इतना परेशान था कि मुझे इस पर आंखों का एक और सेट चाहिए। – stellard

20

रेल 3 के रूप में मदद कर सकता है पर require 'lib/test_module' जोड़ना, config/application.rb में config.autoload_paths को lib निर्देशिका जोड़ने के लिए, ताकि आपके मॉड्यूल युक्त फ़ाइल पढ़ने के लिए है सुनिश्चित करें और मॉड्यूल लोड ।

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

इस पर अधिक जानकारी के लिए और उपनिर्देशिका लोड करने के लिए here देखें।

इसके अलावा, supposedly "आप एक रेल अनुप्रयोग के भीतर नहीं की आवश्यकता होती है का उपयोग करना चाहिए, क्योंकि यह [संयुक्त राष्ट्र] लोड हो रहा है कि कोड को ठीक से ActiveSupport :: निर्भरता से बचाता है"।

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