Skip to content

Commit 9216dfc

Browse files
authored
Merge pull request carrierwaveuploader#2691 from marsz/master
fix: call #dup would raise MissingAttributeError while putting :mount_on in options
2 parents f31546a + b1f79da commit 9216dfc

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

lib/carrierwave/orm/activerecord.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def initialize_dup(other)
4646
@_mounters[:"#{column}"] = nil
4747
super
4848
# The attribute needs to be cleared to prevent it from picked up as identifier
49-
write_attribute(:"#{column}", nil)
49+
write_attribute(_mounter(:#{column}).serialization_column, nil)
5050
_mounter(:"#{column}").cache(old_uploaders)
5151
end
5252

spec/orm/activerecord_spec.rb

+11
Original file line numberDiff line numberDiff line change
@@ -2005,6 +2005,17 @@ def initialize_dup(*)
20052005
expect(@event.dup.image.model).not_to eq @event
20062006
end
20072007
end
2008+
2009+
context ':mount_on in options' do
2010+
before { Event.mount_uploader(:image_v2, @uploader, mount_on: :image) }
2011+
it do
2012+
@event.image_v2 = stub_file('test.jpeg')
2013+
@event.save
2014+
new_event = @event.dup
2015+
expect(new_event).not_to be @event
2016+
expect(new_event.image_v2.model).to be new_event
2017+
end
2018+
end
20082019
end
20092020

20102021
describe 'when set as a nested attribute' do

0 commit comments

Comments
 (0)