मैं रूबी 3.2.2 पर रूबी का उपयोग कर रहा हूं। मैं RoR ActiveSupport::Concern सुविधा का उपयोग करके एक मॉड्यूल को कार्यान्वित कर रहा हूं और इसमें अपनी कक्षा में शामिल हूं। यह included do ... end
ब्लॉक बनाने के कोड को उस कक्षा के कक्षा संदर्भ में निष्पादित करने के लिए उपलब्ध कराया गया है जहां मॉड्यूल शामिल है।मुझे 'शामिल डू ... एंड' ब्लॉक में क्या शामिल नहीं करना चाहिए?
मेरा संदेह है: मुझे included do ... end
ब्लॉक में शामिल होना चाहिए? उदाहरण के लिए, क्या यह निम्नलिखित बनाने के लिए "सामान्य"/"अच्छा" अभ्यास है?
module MyModule
extend ActiveSupport::Concern
class MyModuleClass
attr_accessor :attr1, :attr2, :attr3
def initialize(attrs)
@attr1 = attrs[:attr1]
@attr2 = attrs[:attr2]
@attr3 = attrs[:attr3]
end
end
included do
@my_module_class = MyModuleClass.new(some_attrs)
end
end
अधिक, @my_module_class
चर MyModule
(BTW के वर्ग सहित इसमें विशेषता के रूप में उपलब्ध हो जाएगा: मैं के बाद से MyModule
को @my_module_class
"दिखाई" होने के लिए करना चाहते हैं केवल आंतरिक इसका उद्देश्य केवल उस मॉड्यूल में उपयोग किया जाना है)? क्या कुछ ऐसे "उन्नत" उदाहरण हैं या इस तरह की स्थितियों को संभालने के तरीकों पर ट्यूटोरियल हैं कि मैं उपरोक्त कोड के included do ... end
ब्लॉक में तत्काल प्रयास करने की कोशिश कर रहा हूं? आप किस बारे में सलाह देते हैं?
धन्यवाद, लेकिन "मुख्य" प्रश्न "क्या करना चाहिए * अंत * ब्लॉक में शामिल नहीं होना चाहिए?" संबंधित, * उदाहरण के लिए *, मेरे मामले में। बाकी एक "अधिक" है, भले ही यह मेरे लिए बहुत महत्वपूर्ण है। हालांकि, मैं * MyModuleClass' के सभी उदाहरणों को 'MyModule' का उदाहरण नहीं बनाना चाहता हूं, बल्कि उन लोगों को केवल आंतरिक रूप से' MyModule 'पर उपलब्ध कराने के लिए करना चाहता हूं; इसके अलावा, कक्षा परिभाषा के अंदर 'MyModule' कथन शामिल है अंतर्निहित/स्पष्ट है, क्योंकि मॉड्यूल को कक्षा में शामिल करने का इरादा है। – user12882
"मुझे क्या नहीं करना चाहिए" का सवाल वास्तव में उत्तर देने के लिए बहुत अस्पष्ट है, लेकिन कृपया ऊपर "मेरा संपादित करें" देखें, जहां मैं आप जिस समस्या के बारे में पूछ रहा हूं उसे हल करने का प्रयास करता हूं। –