Mongoid unterstützt jetzt dynamische Felder. Ihre Dokumentation finden Sie hier:http://mongoid.org/en/mongoid/docs/documents.html#dynamic_fields
Grundsätzlich warnt es, dass Sie etwas vorsichtig sein müssen, wie Sie dynamische Felder setzen, da es einen No-Method-Fehler auslösen wird, wenn Sie versuchen, die Getter- und Setter-Methoden für ein Feld zu verwenden, das nicht im Dokument existiert.
[],[]=sind Abkürzungen für read_attribute(),write_attribute() und sollten verwendet werden, wenn Sie dynamic_attributes = true
nicht festlegen in Ihrer ./config/mongoid.yml file
, andernfalls erhalten Sie einen No-Method-Fehler.
Einstellung allow_dynamic_fields: true
kann riskant sein, da Sie Ihre Daten/Ihr Schema mit unbeabsichtigten Feldern verunreinigen könnten, die durch Fehler in Ihrem Code verursacht werden. Es ist wahrscheinlich sicherer, dies auf false
zu setzen und verwenden Sie explizit [],[]=
# 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")