Azione transazione con Ruby On Rails
-
06-09-2019 - |
Domanda
Ho un'azione complessa all'interno del controller che esegue diverse query di aggiornamento al database.
Come posso fare questa azione agisce come transazione senza alcuna refactoring strutturale?
Soluzione
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
Altri suggerimenti
E 'possibile effettuare tutte le azioni di controllo transazionale in una volta con:
around_filter :transactional
def transactional
ActiveRecord::Base.transaction do
yield
end
end
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow