From 07ecaa614b127a1a0b319c5f8eab3d6cad630ddc Mon Sep 17 00:00:00 2001 From: George Claghorn Date: Thu, 19 Jul 2018 20:26:40 -0400 Subject: Destroy blob record before deleting stored data --- activestorage/app/models/active_storage/blob.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'activestorage/app') diff --git a/activestorage/app/models/active_storage/blob.rb b/activestorage/app/models/active_storage/blob.rb index b72f2e796d..bf87598a66 100644 --- a/activestorage/app/models/active_storage/blob.rb +++ b/activestorage/app/models/active_storage/blob.rb @@ -205,8 +205,8 @@ class ActiveStorage::Blob < ActiveRecord::Base # blobs. Note, though, that deleting the file off the service will initiate a HTTP connection to the service, which may # be slow or prevented, so you should not use this method inside a transaction or in callbacks. Use #purge_later instead. def purge - delete destroy + delete end # Enqueues an ActiveStorage::PurgeJob to call #purge. This is the recommended way to purge blobs from a transaction, -- cgit v1.2.3 From 3f53296f1823417d9793c4616e9134414b7be0e8 Mon Sep 17 00:00:00 2001 From: George Claghorn Date: Thu, 19 Jul 2018 20:26:56 -0400 Subject: Delete attachment before purging blob --- activestorage/app/models/active_storage/attachment.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'activestorage/app') diff --git a/activestorage/app/models/active_storage/attachment.rb b/activestorage/app/models/active_storage/attachment.rb index 5d36990fb9..1c4dc25094 100644 --- a/activestorage/app/models/active_storage/attachment.rb +++ b/activestorage/app/models/active_storage/attachment.rb @@ -19,14 +19,14 @@ class ActiveStorage::Attachment < ActiveRecord::Base # Synchronously deletes the attachment and {purges the blob}[rdoc-ref:ActiveStorage::Blob#purge]. def purge - blob.purge delete + blob.purge end # Deletes the attachment and {enqueues a background job}[rdoc-ref:ActiveStorage::Blob#purge_later] to purge the blob. def purge_later - blob.purge_later delete + blob.purge_later end private -- cgit v1.2.3 From 6c45b04a7399bb629bf17319dc3519a061d4d7a0 Mon Sep 17 00:00:00 2001 From: George Claghorn Date: Fri, 20 Jul 2018 11:18:37 -0400 Subject: Discard ActiveStorage::PurgeJobs on ActiveRecord::InvalidForeignKey --- activestorage/app/jobs/active_storage/purge_job.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'activestorage/app') diff --git a/activestorage/app/jobs/active_storage/purge_job.rb b/activestorage/app/jobs/active_storage/purge_job.rb index fa15e0451d..b021b5f2d0 100644 --- a/activestorage/app/jobs/active_storage/purge_job.rb +++ b/activestorage/app/jobs/active_storage/purge_job.rb @@ -2,7 +2,7 @@ # Provides asynchronous purging of ActiveStorage::Blob records via ActiveStorage::Blob#purge_later. class ActiveStorage::PurgeJob < ActiveStorage::BaseJob - discard_on ActiveRecord::RecordNotFound + discard_on ActiveRecord::RecordNotFound, ActiveRecord::InvalidForeignKey def perform(blob) blob.purge -- cgit v1.2.3