Acción transacción con Ruby on Rails
-
06-09-2019 - |
Pregunta
Tengo una acción compleja dentro controlador que realiza varias consultas de actualización de la base de datos.
¿Cómo puedo realizar esta acción actúa como transacciones sin ningún tipo de refactorización estructural?
Solución
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 la documentación para el método de transacción .
Otros consejos
Es posible realizar todas las acciones en el controlador de transacciones a la vez con:
around_filter :transactional
def transactional
ActiveRecord::Base.transaction do
yield
end
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow