sql >> Base de Datos >  >> NoSQL >> MongoDB

Atributos dinámicos con Rails y Mongoid

Mongoid ahora admite campos dinámicos. Su documentación se puede encontrar aquí:http://mongoid.org/en/mongoid/docs/documents.html#dynamic_fields

Básicamente, advierte que debe tener un poco de cuidado con la configuración de los campos dinámicos, ya que generará un error sin método si intenta utilizar los métodos getter y setter para un campo que no existía en el documento.

[],[]=son atajos para read_attribute(),write_attribute() , y deben usarse si no establece dynamic_attributes = true en su archivo ./config/mongoid.yml file , de lo contrario obtendrá un error sin método.

Configuración de allow_dynamic_fields: true puede ser riesgoso, ya que podría contaminar sus datos/esquema con campos no deseados causados ​​por errores en su código. Probablemente sea más seguro establecer esto en false y usa explícitamente [],[]=

# 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")