Ich habe eine komplexe Aktion im Controller, die mehrere Update-Abfragen an die Datenbank ausführt.Transaktionsaktion mit Ruby On Rails
Wie kann ich diese Aktion machen verhält sich wie Transaktion ohne strukturelles Refactoring?
Ich habe eine komplexe Aktion im Controller, die mehrere Update-Abfragen an die Datenbank ausführt.Transaktionsaktion mit Ruby On Rails
Wie kann ich diese Aktion machen verhält sich wie Transaktion ohne strukturelles Refactoring?
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
Hier sind the docs for the transaction method.
Es ist posible alle Aktionen im Controller Transaktions zu machen sofort mit:
around_filter :transactional
def transactional
ActiveRecord::Base.transaction do
yield
end
end
Aspektorientierte Programmierung. Gibt es nichts, was Ruby nicht kann? (Neben der Arbeit an Windows.) – Chloe