aboutsummaryrefslogtreecommitdiffstats
path: root/activestorage
diff options
context:
space:
mode:
authorGeorge Claghorn <george@basecamp.com>2018-07-13 14:48:45 -0400
committerGeorge Claghorn <george@basecamp.com>2018-07-13 14:48:45 -0400
commitbd5eba1adff8fa72429f5889ae26097e9756ceb0 (patch)
tree22690f0a6db99483ee7c6556577abc2e3370eae7 /activestorage
parent28db8ba60e726d695cf35710cc43ea45966464e9 (diff)
downloadrails-bd5eba1adff8fa72429f5889ae26097e9756ceb0.tar.gz
rails-bd5eba1adff8fa72429f5889ae26097e9756ceb0.tar.bz2
rails-bd5eba1adff8fa72429f5889ae26097e9756ceb0.zip
Clear attachment changes on reload
Diffstat (limited to 'activestorage')
-rw-r--r--activestorage/lib/active_storage/attached/model.rb4
-rw-r--r--activestorage/test/models/attached/many_test.rb8
-rw-r--r--activestorage/test/models/attached/one_test.rb8
3 files changed, 20 insertions, 0 deletions
diff --git a/activestorage/lib/active_storage/attached/model.rb b/activestorage/lib/active_storage/attached/model.rb
index 1cdaac2e32..aa5c769cb8 100644
--- a/activestorage/lib/active_storage/attached/model.rb
+++ b/activestorage/lib/active_storage/attached/model.rb
@@ -132,5 +132,9 @@ module ActiveStorage
def attachment_changes #:nodoc:
@attachment_changes ||= {}
end
+
+ def reload(*) #:nodoc:
+ super.tap { @attachment_changes = nil }
+ end
end
end
diff --git a/activestorage/test/models/attached/many_test.rb b/activestorage/test/models/attached/many_test.rb
index 719032786b..fc89dae658 100644
--- a/activestorage/test/models/attached/many_test.rb
+++ b/activestorage/test/models/attached/many_test.rb
@@ -467,6 +467,14 @@ class ActiveStorage::ManyAttachedTest < ActiveSupport::TestCase
end
end
+ test "clearing change on reload" do
+ @user.highlights = [ create_blob(filename: "funky.jpg"), create_blob(filename: "town.jpg") ]
+ assert @user.highlights.attached?
+
+ @user.reload
+ assert_not @user.highlights.attached?
+ end
+
test "overriding attached reader" do
@user.highlights.attach create_blob(filename: "funky.jpg"), create_blob(filename: "town.jpg")
diff --git a/activestorage/test/models/attached/one_test.rb b/activestorage/test/models/attached/one_test.rb
index 6d2b8eaaf6..33f9122644 100644
--- a/activestorage/test/models/attached/one_test.rb
+++ b/activestorage/test/models/attached/one_test.rb
@@ -427,6 +427,14 @@ class ActiveStorage::OneAttachedTest < ActiveSupport::TestCase
end
end
+ test "clearing change on reload" do
+ @user.avatar = create_blob(filename: "funky.jpg")
+ assert @user.avatar.attached?
+
+ @user.reload
+ assert_not @user.avatar.attached?
+ end
+
test "overriding attached reader" do
@user.avatar.attach create_blob(filename: "funky.jpg")