From c03aa79ece530caecac7f6c45d32f5a92b4b4118 Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 4 Apr 2017 20:31:20 -0500 Subject: [PATCH] Post#give_favorites_to_parent: wrap in transaction. Ensure that if anything fails then the entire favorites move will be rolled back. --- app/models/post.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/models/post.rb b/app/models/post.rb index 4ef05b151..06d4cdbde 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -1282,9 +1282,11 @@ class Post < ActiveRecord::Base def give_favorites_to_parent return if parent.nil? - favorites.each do |fav| - remove_favorite!(fav.user) - parent.add_favorite!(fav.user) + transaction do + favorites.each do |fav| + remove_favorite!(fav.user) + parent.add_favorite!(fav.user) + end end end