From 7bd882f33c6f54a77ae9cb8e8221dcf746a01e3c Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 19 Oct 2024 17:10:32 -0700 Subject: [PATCH] Extract explaining variable and move work outside the transaction constraint --- app/models/bubble/assignable.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/models/bubble/assignable.rb b/app/models/bubble/assignable.rb index db0b405eb..d83c027ff 100644 --- a/app/models/bubble/assignable.rb +++ b/app/models/bubble/assignable.rb @@ -12,9 +12,11 @@ module Bubble::Assignable end def assign(users, assigner: Current.user) + assignee_rows = Array(users).collect { |user| { assignee_id: user.id, assigner_id: assigner.id, bubble_id: id } } + transaction do - Assignment.insert_all Array(users).collect { |user| { assignee_id: user.id, assigner_id: assigner.id, bubble_id: id } } - track_event :assigned, assignee_ids: Array(users).map(&:id) + Assignment.insert_all assignee_rows + track_event :assigned, assignee_ids: assignee_rows.pluck(:assignee_id) end end end