lib/cloudinary/carrier_wave/storage.rb in cloudinary-1.0.24 vs lib/cloudinary/carrier_wave/storage.rb in cloudinary-1.0.25
- old
+ new
@@ -38,17 +38,20 @@
end
def store_cloudinary_version(version)
name = "v#{version}/#{identifier.split("/").last}"
model_class = uploader.model.class
+ column = uploader.model.send(:_mounter, uploader.mounted_as).send(:serialization_column)
if defined?(ActiveRecord::Base) && uploader.model.is_a?(ActiveRecord::Base)
primary_key = model_class.primary_key.to_sym
- model_class.update_all({uploader.mounted_as=>name}, {primary_key=>uploader.model.send(primary_key)})
- uploader.model.send :write_attribute, uploader.mounted_as, name
- elsif model_class.respond_to?(:update_all) && uploader.model.respond_to?(:_id)
+ model_class.update_all({column=>name}, {primary_key=>uploader.model.send(primary_key)})
+ uploader.model.send :write_attribute, column, name
+ elsif defined?(Mongoid::Document) && uploader.model.is_a?(Mongoid::Document)
# Mongoid support
- model_class.where(:_id=>uploader.model._id).update_all(uploader.mounted_as=>name)
- uploader.model.send :write_attribute, uploader.mounted_as, name
+ uploader.model.set(column, name)
+ elsif model_class.respond_to?(:update_all) && uploader.model.respond_to?(:_id)
+ model_class.where(:_id=>uploader.model._id).update_all(column=>name)
+ uploader.model.send :write_attribute, column, name
else
raise "Only ActiveRecord and Mongoid are supported at the moment!"
end
end
end