aboutsummaryrefslogtreecommitdiffstats
path: root/activestorage
diff options
context:
space:
mode:
authorGeorge Claghorn <george@basecamp.com>2018-07-30 21:42:20 -0400
committerGeorge Claghorn <george@basecamp.com>2018-07-30 21:42:20 -0400
commitcd2fe237f76d9d121c7f57d2de89b1445268de0f (patch)
treeab4a5c38eb4cef302eef46045f2b2a274f25ea6b /activestorage
parent2a8917d30413927df353d77d9835a86f83625d5a (diff)
downloadrails-cd2fe237f76d9d121c7f57d2de89b1445268de0f.tar.gz
rails-cd2fe237f76d9d121c7f57d2de89b1445268de0f.tar.bz2
rails-cd2fe237f76d9d121c7f57d2de89b1445268de0f.zip
Guard against missing blobs caused by concurrent purges
Diffstat (limited to 'activestorage')
-rw-r--r--activestorage/app/models/active_storage/attachment.rb6
1 files changed, 3 insertions, 3 deletions
diff --git a/activestorage/app/models/active_storage/attachment.rb b/activestorage/app/models/active_storage/attachment.rb
index 1c4dc25094..4bdd1c0224 100644
--- a/activestorage/app/models/active_storage/attachment.rb
+++ b/activestorage/app/models/active_storage/attachment.rb
@@ -20,13 +20,13 @@ class ActiveStorage::Attachment < ActiveRecord::Base
# Synchronously deletes the attachment and {purges the blob}[rdoc-ref:ActiveStorage::Blob#purge].
def purge
delete
- blob.purge
+ blob&.purge
end
# Deletes the attachment and {enqueues a background job}[rdoc-ref:ActiveStorage::Blob#purge_later] to purge the blob.
def purge_later
delete
- blob.purge_later
+ blob&.purge_later
end
private
@@ -39,7 +39,7 @@ class ActiveStorage::Attachment < ActiveRecord::Base
end
def purge_dependent_blob_later
- blob.purge_later if dependent == :purge_later
+ blob&.purge_later if dependent == :purge_later
end