डिफ़ॉल्ट रूप से, रेल ऑटोलैड पथ के लिए मॉडल निर्देशिका के सबफ़ोल्डर्स को नहीं जोड़ता है। यही कारण है कि यह केवल नामांकित मॉडल पा सकता है - नाम स्थान देखने के लिए उपनिर्देशिका को प्रकाशित करता है।
ऑटोलैड पथ पर एप्लिकेशन / मॉडल के सभी सबफ़ोल्डर्स को जोड़ने के लिए, निम्नलिखित को कॉन्फ़िगर / एप्लिकेशन में जोड़ें ।rb :
config.autoload_paths += Dir[Rails.root.join("app", "models", "{*/}")]
या, यदि आपके पास अधिक जटिल एप्लिकेशन / मॉडल निर्देशिका है, तो ऐप / मॉडल के सभी सबफ़ोल्डर्स को एक साथ ग्लोब करने की उपरोक्त विधि ठीक से काम नहीं कर सकती है। किस स्थिति में, आप इसके बारे में थोड़ा और स्पष्ट होकर और केवल आपके द्वारा निर्दिष्ट सबफ़ोल्डर्स को जोड़कर प्राप्त कर सकते हैं:
config.autoload_paths += Rails.root.join("app", "models", "<my_subfolder_name1>")
config.autoload_paths += Rails.root.join("app", "models", "<my_subfolder_name2>")
पटरियों के लिए अद्यतन 4.1+
रेल 4.1 के रूप में, ऐप जनरेटर config.autoload_paths
डिफ़ॉल्ट रूप से शामिल नहीं होता है । तो, ध्यान दें कि उपरोक्त वास्तव में config / application.rb से संबंधित है ।
अपडेट करें
{*/}
इसके बजाय उपयोग करने के लिए उपरोक्त कोड में निश्चित ऑटोलोड पथ उदाहरण हैं {**}
। इस पर जानकारी के लिए म्यूचिन की टिप्पणी अवश्य पढ़ें ।