2012-02-26 15 views
31

रेल मॉडल में विधियों को देखते समय, कभी-कभी मुझे self.method_name और कभी-कभी केवल method_name दिखाई देता है। self. का उपयोग कब और कब नहीं करना है, यह जानने के लिए क्या अंतर है और क्या मार्गदर्शिका है?रेल मॉडल विधि स्वयं। बनाम सादा

उत्तर

43

self.method_name कक्षा विधि इंगित करता है; method_name एक उदाहरण विधि इंगित करता है।

आप कक्षा और उदाहरण विधियों के बारे में बहुत कुछ पढ़ सकते हैं at this blog post या, यदि आप कुछ और अधिक आधिकारिक, Programming Ruby class section पसंद करते हैं।

24

1) विधि परिभाषाओं पर लागू होने पर, 'स्वयं'। इसे एक क्लास विधि बना देगा, जबकि सादा एक उदाहरण विधि होगी।

2) मॉडल में विशेषताओं पर लागू होने पर, विशेषता को बदलने पर हमेशा स्वयं का उपयोग करना महत्वपूर्ण है, लेकिन आपको अन्यथा इसकी आवश्यकता नहीं होगी।

उदाहरण के लिए इतना

:

def some_method 
self.name = new_value # correct 
name = new_value # will not change the attribute 
end 
+1

भी ऊपर को जवाब की तुलना में बेहतर। – neversion

+0

प्वाइंट 2) मुझे पागल कर रहा था। धन्यवाद! –

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