CarrierWave下载后如何更改对象路径
CarrierWave how to change object path after downloaded
我必须复制一个包含 CarrierWave 图像的模型,但我需要使用相同的图像文件,问题是我的文件路径使用模型 UUID,保存新对象后图像的 UUID 是也更新了。
如何在保存对象后更改图片文件路径以保留原始图片路径?
这是我存储在 aws 的图像:
@mounted_as=:my_cover, @storage=#<CarrierWave::Storage::Fog:0x0000000002ef @uploader=#<CoverUploader::Uploader82999640:0x0000000002ef ...>>, @file=#<CarrierWave::Storage::Fog::File:0x0000000002ef @uploader=#<CoverUploader::Uploader82999640:0x0000000002ef
我可以访问 Model.my_cover.file.path 或 Model.my_cover.cover.path 但我无法更改路径值。
我不想复制图像,因为这会使文件存储空间翻倍 space。
感谢您的帮助!
复制对象时,您应该能够在保存新对象之前复制前一个对象的图像。
假设您的模型名为 Model 并且具有名为 my_cover.
的图像属性
a = Model.new
b = a.dup
b.my_cover = a.my_cover
b.save
Carrierwave 使用引用图像的图像对象 URL,您可以将其复制到其他对象。
我必须复制一个包含 CarrierWave 图像的模型,但我需要使用相同的图像文件,问题是我的文件路径使用模型 UUID,保存新对象后图像的 UUID 是也更新了。
如何在保存对象后更改图片文件路径以保留原始图片路径?
这是我存储在 aws 的图像:
@mounted_as=:my_cover, @storage=#<CarrierWave::Storage::Fog:0x0000000002ef @uploader=#<CoverUploader::Uploader82999640:0x0000000002ef ...>>, @file=#<CarrierWave::Storage::Fog::File:0x0000000002ef @uploader=#<CoverUploader::Uploader82999640:0x0000000002ef
我可以访问 Model.my_cover.file.path 或 Model.my_cover.cover.path 但我无法更改路径值。
我不想复制图像,因为这会使文件存储空间翻倍 space。
感谢您的帮助!
复制对象时,您应该能够在保存新对象之前复制前一个对象的图像。 假设您的模型名为 Model 并且具有名为 my_cover.
的图像属性a = Model.new
b = a.dup
b.my_cover = a.my_cover
b.save
Carrierwave 使用引用图像的图像对象 URL,您可以将其复制到其他对象。