Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • 12-9-stable
  • 12-7-stable
  • 12-6-stable
  • 12-8-stable
  • github/fork/Kloppi313/patch-1
  • 12-5-stable
  • 12-4-stable
  • github/fork/ramalokesh8477/master
  • 12-1-stable
  • 12-2-stable
  • 12-0-stable
  • 12-3-stable
  • 42-42-stable
  • github/fork/hussamgit398/patch-2
  • 12-3-auto-deploy-20190911
  • 12-3-auto-deploy-20190916
  • 12-3-auto-deploy-20190908
  • 12-3-auto-deploy-20190901
  • 12-3-auto-deploy-20190901-32664
  • v12.10.0.pre
  • v12.9.0
  • v12.9.0-rc42
  • v12.8.7
  • v12.8.6
  • v12.8.5
  • v12.8.4
  • v12.8.3
  • v12.6.8
  • v12.7.7
  • v12.8.2
  • v12.8.1
  • v12.9.0.pre
  • v12.8.0
  • v12.8.0-rc42
  • v12.5.10
  • v12.7.6
  • v12.6.7
  • v12.7.5
  • v12.5.9
40 results

with_uploads.rb

  • Jan Provaznik's avatar
    7da3b2cd
    Delete remote uploads · 7da3b2cd
    Jan Provaznik authored
    ObjectStore uploader requires presence of associated `uploads` record
    when deleting the upload file (through the carrierwave's after_commit
    hook) because we keep info whether file is LOCAL or REMOTE in `upload`
    object.
    
    For this reason we can not destroy uploads as "dependent: :destroy" hook
    because these would be deleted too soon. Instead we rely on
    carrierwave's hook to destroy `uploads` in after_commit hook.
    
    But in before_destroy hook we still have to delete not-mounted uploads
    (which don't use carrierwave's destroy hook). This has to be done in
    before_Destroy instead of after_commit because `FileUpload` requires
    existence of model's object on destroy action.
    
    This is not ideal state of things, in a next step we should investigate
    how to unify model dependencies so we can use same workflow for all
    uploads.
    
    Related to #45425
    7da3b2cd
    History
    Delete remote uploads
    Jan Provaznik authored
    ObjectStore uploader requires presence of associated `uploads` record
    when deleting the upload file (through the carrierwave's after_commit
    hook) because we keep info whether file is LOCAL or REMOTE in `upload`
    object.
    
    For this reason we can not destroy uploads as "dependent: :destroy" hook
    because these would be deleted too soon. Instead we rely on
    carrierwave's hook to destroy `uploads` in after_commit hook.
    
    But in before_destroy hook we still have to delete not-mounted uploads
    (which don't use carrierwave's destroy hook). This has to be done in
    before_Destroy instead of after_commit because `FileUpload` requires
    existence of model's object on destroy action.
    
    This is not ideal state of things, in a next step we should investigate
    how to unify model dependencies so we can use same workflow for all
    uploads.
    
    Related to #45425