diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2015-09-30 18:59:51 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2015-09-30 18:59:51 +0000 |
commit | e045215db7e38b0318b06aa62892e7241aa5095a (patch) | |
tree | 3b5c48a990f750d7732636059b4a6baaa559642f | |
parent | 785569b980c0bf38e47a5514ede9f750e79ee131 (diff) | |
download | redmine-e045215db7e38b0318b06aa62892e7241aa5095a.tar.gz redmine-e045215db7e38b0318b06aa62892e7241aa5095a.zip |
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
-rw-r--r-- | app/models/attachment.rb | 2 | ||||
-rw-r--r-- | config/application.rb | 3 | ||||
-rw-r--r-- | test/unit/attachment_test.rb | 4 |
3 files changed, 8 insertions, 1 deletions
diff --git a/app/models/attachment.rb b/app/models/attachment.rb index d1d7c6dd0..5fa89ee5a 100644 --- a/app/models/attachment.rb +++ b/app/models/attachment.rb @@ -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) diff --git a/config/application.rb b/config/application.rb index 0f75247c1..90b1adf9a 100644 --- a/config/application.rb +++ b/config/application.rb @@ -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 diff --git a/test/unit/attachment_test.rb b/test/unit/attachment_test.rb index 4c3a13151..ac09f5658 100644 --- a/test/unit/attachment_test.rb +++ b/test/unit/attachment_test.rb @@ -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 |