डिफ़ॉल्ट रूप से, ActiveRecord सभी फ़ील्ड को संबंधित डेटाबेस तालिका से लेता है और उन सभी के लिए सार्वजनिक विशेषताओं को बनाता है।क्या Rails ActiveRecord निजी गुण बनाने का कोई तरीका है?
मुझे लगता है कि यह उचित है मॉडल मॉडल में सभी विशेषताओं को बनाने के लिए। इससे भी अधिक, आंतरिक उपयोग के लिए मौजूद विशेषताओं का खुलासा मॉडल के इंटरफ़ेस को रोकता है और encapsulation सिद्धांत का उल्लंघन करता है।
तो, क्या कुछ विशेषताओं को सचमुच private
बनाने का कोई तरीका है?
या, शायद मुझे किसी अन्य ओआरएम पर जाना चाहिए?
कोई कारण नहीं है कि मैं इसे पूरा करने के लिए निम्नलिखित का उपयोग नहीं कर सकता/सकती हूं? निजी attr_accessor my_private_attribute –
@TC: क्योंकि वे वास्तव में विशेषताओं को सही ढंग से ट्रैक नहीं करेंगे। write_attribute/read_attribute विधियां जिस तरह से आप active_record –
के साथ इंटरफ़ेस करते हैं, वास्तव में, write_attribute डीबी के मान को जारी नहीं रखेगा। वास्तव में डीबी में रिकॉर्ड को अपडेट करने के लिए स्वयं को self.save को कॉल करना होगा। – Magne