update_attribute
hace realmente una llamada física a la base de datos. Obtiene una ejecución completa de una declaración UPDATE
. Es como update_attributes
pero solo para una sola columna.
Mientras que write_attribute
escribe el atributo para la asignación al modelo para columnas basadas en AR. Si fuera a sobrescribir un atributo basado en DB.
def first_name=(val)
write_attribute :first_name, val
end
# some_model.first_name => 'whatever val is'
def first_name=(val)
@first_name = val
end
# some_model.first_name => nil
no he mirado en write_attribute
ampliamente, pero recopilar modelos basados activerecord manejan las asignaciones a db columnas basadas ligeramente diferente a su funcionamiento de la fábrica de descriptor de acceso.