मैं जो बात कर रहा हूँ उसका एक उदाहरण:
class Person < ActiveRecord::Base
def name=(name)
super(name.capitalize)
end
def name
super().downcase # not sure why you'd do this; this is just an example
end
end
यह काम करने लगता है, लेकिन मुझे सिर्फ ActiveRecord :: Base डॉक्स में विशेषता विधियों को ओवरराइड करने पर अनुभाग पढ़ा गया था , और यह read_attribute
और write_attribute
विधियों का उपयोग करने का सुझाव देता है । मुझे लगा कि ऊपर दिए गए उदाहरण में मैं जो कुछ कर रहा हूं उसमें कुछ गड़बड़ है; अन्यथा, वे इन विधियों को विशेषता विधियों को ओवरराइड करने के "सही तरीके" के रूप में क्यों आशीर्वाद देंगे? वे भी एक बहुत बदसूरत मुहावरा मजबूर कर रहे हैं, तो एक अच्छा कारण होना चाहिए ...
मेरा असली सवाल: क्या इस उदाहरण में कुछ गड़बड़ है?