Tengo una acción compleja dentro del controlador que realiza varias consultas de actualización a la base de datos.Acción de transacción con Ruby On Rails
¿Cómo puedo hacer esta acción actúa como transacción sin ninguna refacturación estructural?
Tengo una acción compleja dentro del controlador que realiza varias consultas de actualización a la base de datos.Acción de transacción con Ruby On Rails
¿Cómo puedo hacer esta acción actúa como transacción sin ninguna refacturación estructural?
MyModel.transaction do
begin
@model.update_stuff
@sub_model.update_stuff
@sub_sub_model.update_stuff
rescue ActiveRecord::StatementInvalid # or whatever
# rollback is automatic, but if you want to do something additional,
# add it here
end
end
Aquí están the docs for the transaction method.
Existe la posibilidad de hacer todas las acciones en el controlador de transacciones a la vez con:
around_filter :transactional
def transactional
ActiveRecord::Base.transaction do
yield
end
end
programación orientada a aspectos. ¿No hay nada que Ruby no pueda hacer? (Además de trabajar en Windows.) – Chloe