Откат, если одно обновление не удалось в 2-х моделях в Rails - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть 2 модели, которые я хочу обновить, скажем, у меня есть Транзакция и Продукт

Я хочу сначала обновить Транзакцию, а затем Продукт, но я не смог обновить Продукт по некоторым причинам, могу ли я откатить Продукт и Транзакции как хорошо в рельсах ?? и как ? : D

1 Ответ

1 голос
/ 22 апреля 2020

То, что вы хотите сделать, это поместить его в одну транзакцию. в случае возникновения ошибки выполняется откат всех операций, выполненных в блоке

https://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html

begin
  ActiveRecord::Base.transaction do
    @transaction.save!
    @product.save!
  end
  #handle success here
rescue ActiveRecord::RecordInvalid => invalid
   #handle failure here
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...