عمل المعاملات مع روبي على القضبان
-
06-09-2019 - |
سؤال
لدي إجراء معقد داخل جهاز التحكم داخل وحدة التحكم التي تؤدي العديد من استعلامات التحديث إلى قاعدة البيانات.
كيف يمكنني إجراء هذا الإجراء يتصرف مثل المعاملة دون أي إعادة صياغة هيكلية؟
المحلول
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
نصائح أخرى
من الممثل أن يجعل جميع الإجراءات في المعاملات المرادقة في وقت واحد مع:
around_filter :transactional
def transactional
ActiveRecord::Base.transaction do
yield
end
end
لا تنتمي إلى StackOverflow