我有:
class Painting < ActiveRecord::Base
mount_uploader :image, ImageUploader
...
end
和
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :file
process :fix_exif_rotation
def fix_exif_rotation
manipulate! do |img|
img.auto_orient!
img = yield(img) if block_given?
img
end
end
end
这在新上传的图像上可以正常工作,但是我希望脚本在每个已存在的图像上执行auto_orient!
,因为我只添加了fix_exif_rotation代码,而旧图像有方向问题。...
我尝试:
Painting.first.image.fix_exif_rotation
CarrierWave :: ProcessingError(无法通过rmagick进行操作,也许它不是图像?)
Painting.first.image.auto_orient!
NoMethodError(#的未定义方法“ auto_orient!”)
那有什么好的方法呢?
答案 0 :(得分:0)
尝试使用recreate_versions!方法https://github.com/carrierwaveuploader/carrierwave#recreating-versions
Painting.first.image.recreate_versions!
我不确定它是否仅适用于额外版本或原始版本。