Browse Source

Remove attachment after transaction commit (#20388).

Patch by Ivan Zabrovskiy.

git-svn-id: http://svn.redmine.org/redmine/trunk@14630 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/3.2.0
Jean-Philippe Lang 8 years ago
parent
commit
e045215db7
3 changed files with 8 additions and 1 deletions
  1. 1
    1
      app/models/attachment.rb
  2. 3
    0
      config/application.rb
  3. 4
    0
      test/unit/attachment_test.rb

+ 1
- 1
app/models/attachment.rb View File

@@ -53,7 +53,7 @@ class Attachment < ActiveRecord::Base
@@thumbnails_storage_path = File.join(Rails.root, "tmp", "thumbnails")

before_create :files_to_final_location
after_destroy :delete_from_disk
after_commit :delete_from_disk, :on => :destroy

# Returns an unsaved copy of the attachment
def copy(attributes=nil)

+ 3
- 0
config/application.rb View File

@@ -47,6 +47,9 @@ module RedmineApp
# Do not include all helpers
config.action_controller.include_all_helpers = false

# Do not supress errors in after_rollback and after_commit callbacks
config.active_record.raise_in_transactional_callbacks = true

# XML parameter parser removed from core in Rails 4.0
# and extracted to actionpack-xml_parser gem
config.middleware.insert_after ActionDispatch::ParamsParser, ActionDispatch::XmlParamsParser

+ 4
- 0
test/unit/attachment_test.rb View File

@@ -23,6 +23,10 @@ class AttachmentTest < ActiveSupport::TestCase
fixtures :users, :projects, :roles, :members, :member_roles,
:enabled_modules, :issues, :trackers, :attachments

# TODO: remove this with Rails 5 that supports after_commit callbacks
# in transactional fixtures (https://github.com/rails/rails/pull/18458)
self.use_transactional_fixtures = false

class MockFile
attr_reader :original_filename, :content_type, :content, :size


Loading…
Cancel
Save