Mongoid understøtter nu Dynamic Fields. Deres dokumentation kan findes her:http://mongoid.org/en/mongoid/docs/documents.html#dynamic_fields
Grundlæggende advarer den om, at du skal være lidt forsigtig med, hvordan du indstiller dynamiske felter, da det vil fremkalde en ingen metodefejl, hvis du forsøger at bruge getter- og setter-metoderne til et felt, der ikke fandtes i dokumentet.
[],[]=er genveje til read_attribute(),write_attribute() , og skal bruges, hvis du ikke indstiller dynamic_attributes = true
i din ./config/mongoid.yml file
, ellers får du fejlen ingen metode.
Indstilling af allow_dynamic_fields: true
kan være risikabelt, da du kan forurene dine data/skema med utilsigtede felter forårsaget af fejl i din kode. Det er sandsynligvis mere sikkert at indstille dette til false
og brug eksplicit [],[]=
# 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")