Skip to content

Commit bd5eba1

Browse files
Clear attachment changes on reload
1 parent 28db8ba commit bd5eba1

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

activestorage/lib/active_storage/attached/model.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,5 +132,9 @@ def purge_later
132132
def attachment_changes #:nodoc:
133133
@attachment_changes ||= {}
134134
end
135+
136+
def reload(*) #:nodoc:
137+
super.tap { @attachment_changes = nil }
138+
end
135139
end
136140
end

activestorage/test/models/attached/many_test.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,14 @@ class ActiveStorage::ManyAttachedTest < ActiveSupport::TestCase
467467
end
468468
end
469469

470+
test "clearing change on reload" do
471+
@user.highlights = [ create_blob(filename: "funky.jpg"), create_blob(filename: "town.jpg") ]
472+
assert @user.highlights.attached?
473+
474+
@user.reload
475+
assert_not @user.highlights.attached?
476+
end
477+
470478
test "overriding attached reader" do
471479
@user.highlights.attach create_blob(filename: "funky.jpg"), create_blob(filename: "town.jpg")
472480

activestorage/test/models/attached/one_test.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,14 @@ class ActiveStorage::OneAttachedTest < ActiveSupport::TestCase
427427
end
428428
end
429429

430+
test "clearing change on reload" do
431+
@user.avatar = create_blob(filename: "funky.jpg")
432+
assert @user.avatar.attached?
433+
434+
@user.reload
435+
assert_not @user.avatar.attached?
436+
end
437+
430438
test "overriding attached reader" do
431439
@user.avatar.attach create_blob(filename: "funky.jpg")
432440

0 commit comments

Comments
 (0)