From 8fe36654efff73cb9b6800f7d1a57e6466f2ded3 Mon Sep 17 00:00:00 2001 From: "Keiji, Yoshimi" Date: Wed, 26 Apr 2017 10:47:44 +0900 Subject: [PATCH] attach_media should be in transaction of creation status (#2426) --- app/services/post_status_service.rb | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index 958cc2890..30b8032ed 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -20,15 +20,17 @@ class PostStatusService < BaseService end media = validate_media!(options[:media_ids]) - status = account.statuses.create!(text: text, - thread: in_reply_to, - sensitive: options[:sensitive], - spoiler_text: options[:spoiler_text] || '', - visibility: options[:visibility], - language: detect_language_for(text, account), - application: options[:application]) - - attach_media(status, media) + status = nil + ApplicationRecord.transaction do + status = account.statuses.create!(text: text, + thread: in_reply_to, + sensitive: options[:sensitive], + spoiler_text: options[:spoiler_text] || '', + visibility: options[:visibility], + language: detect_language_for(text, account), + application: options[:application]) + attach_media(status, media) + end process_mentions_service.call(status) process_hashtags_service.call(status)