Rails, Ruby classes / modules / namespaces confusion -


मेरे पास रेल मॉडल है: ऐप / मॉडल / एआरबी - & gt; वर्ग ए & lt; ActiveRecord :: बेस

उसके बाद मेरे पास: ऐप / सेवाएं / ए / बी / सीआरआर - & gt; वर्ग ए :: बी :: सी , जहां दोनों एक और b फ़ोल्डर हैं

और, अंत में, मेरे पास एक मॉड्यूल है: मॉड्यूल बी एपीएआईके, ऐप / & लेफ्टिनेंट; फ़ोल्डनाव & gt; autoloaded है, (यह इस नाम के साथ एक बाहरी मणि है)।

अगर मैं ऐसा करने का प्रयास करता हूं: ए :: बी :: सी न्यू यह एक त्रुटि संदेश फेंकता है: निपुण स्थिर ... ... द्वारा संदर्भित ... (बिल्कुल नहीं याद है) - दूसरे शब्दों में, यह नहीं काम करता है

एक फ़ोल्डर के तहत परिभाषित अन्य वर्ग - काम सिर्फ ठीक है उदाहरण के लिए: एप / सेवा / ए / एक्स। आरबी ( वर्ग ए :: एक्स )

अगर मैं कोशिश करता हूँ A :: B , मैं बस एक चेतावनी संदेश के साथ B (मणि) मिलता है (लेकिन यह काम जारी है)।

लेकिन, अगर मैं एक या बी फ़ोल्डर का नाम (और निश्चित रूप से वर्ग के हस्ताक्षर) - यह ठीक काम करता है!

तो,

1) ऐसा क्यों है ? कैसे इन सभी वर्गों, मॉड्यूल, नाम स्थान, inclusions संभाल करता है?

2) क्या एक ही बात का नाम बदलने के लिए सबकुछ काम करना संभव है?

धन्यवाद अग्रिम! < / P>

आपको एक मध्यवर्ती ए :: बी की आवश्यकता हो सकती है a / b.rb इसे संदर्भ देने से पहले मॉड्यूल A :: B को ठीक से परिभाषित करें, या आप अपनी अंतिम फ़ाइल में अपनी घोषणा फिर से कर सकते हैं।

उदाहरण के लिए: < पूर्व> # ए / बी / सीआरबी वर्ग ए :: बी :: सी एंड

यह मॉड्यूल या वर्ग ए और ए :: बी पर निर्भर करता है परिभाषित

आप यह कदम उठा सकते हैं:

  वर्ग एक मॉड्यूल बी वर्ग सी एंड एंड एंड   

यह सभी मध्यवर्तीों को सशक्त घोषित करेगा चूंकि यह बहुत सारे इंडेंटेशन का परिचय देता है, एक थोड़ा कम गड़बड़ा दृष्टिकोण है:

  वर्ग एक मॉड्यूल बी अंत अंत वर्ग ए :: बी :: सी एंड   

निश्चित रूप से, उचित मध्यवर्ती घोषणाओं के साथ a.rb और a / b.rb होने पर अक्सर यह सब से बचने में मदद मिलती है। < / html>

Comments

Popular posts from this blog

php - PDO bindParam() fatal error -

php - How can I cram 6+31 numeric characters into 22 alphanumeric characters? -

mysql - where clause in inner join query -