मोंगोइड अब डायनेमिक फील्ड्स का समर्थन करता है। उनके दस्तावेज़ यहां देखे जा सकते हैं:http://mongoid.org/en/mongoid/docs/documents.html#dynamic_fields
मूल रूप से यह चेतावनी देता है कि आपको थोड़ा सावधान रहना होगा कि आप गतिशील फ़ील्ड कैसे सेट करते हैं क्योंकि यदि आप उस फ़ील्ड के लिए गेट्टर और सेटर विधियों का उपयोग करने का प्रयास करते हैं जो दस्तावेज़ में मौजूद नहीं है तो यह कोई विधि त्रुटि उत्पन्न नहीं करेगा।
[],[]=read_attribute(),write_attribute() के लिए शॉर्टकट हैं, और यदि आप dynamic_attributes = true
सेट नहीं करते हैं तो इसका उपयोग किया जाना चाहिए। आपकी ./config/mongoid.yml file
. में , अन्यथा आपको नो मेथड एरर मिलेगा।
allow_dynamic_fields: true
Setting सेट करना जोखिम भरा हो सकता है, क्योंकि आप अपने डेटा/स्कीमा को अपने कोड में बग के कारण अनपेक्षित फ़ील्ड से प्रदूषित कर सकते हैं। इसे false
पर सेट करना शायद अधिक सुरक्षित है और स्पष्ट रूप से [],[]=
# Raise a NoMethodError if value isn't set.
person.gender
person.gender = "Male"
# Retrieve a dynamic field safely.
person[:gender]
person.read_attribute(:gender)
# Write a dynamic field safely.
person[:gender] = "Male"
person.write_attribute(:gender, "Male")