Mongoid ondersteunt nu dynamische velden. Hun documentatie is hier te vinden:https://mongoid.org/en/mongoid/docs/documents.html#dynamic_fields
Het waarschuwt in feite dat je een beetje voorzichtig moet zijn met het instellen van dynamische velden, omdat het een no method-fout zal veroorzaken als je probeert de getter- en setter-methoden te gebruiken voor een veld dat niet in het document bestond.
[],[]=zijn sneltoetsen voor read_attribute(),write_attribute() , en moeten worden gebruikt als u dynamic_attributes = true niet instelt in uw ./config/mongoid.yml file , anders krijg je een 'geen methode'-fout.
Instelling allow_dynamic_fields: true kan riskant zijn, omdat u uw gegevens/schema kunt vervuilen met onbedoelde velden die worden veroorzaakt door bugs in uw code. Het is waarschijnlijk veiliger om dit in te stellen op false en gebruik expliciet [],[]=
# 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")