Carrierwave - 追溯定义颠覆

Carrierwave - Define subversion retroactively

在 carrierwaveupload 中你定义版本,你可以这样定义颠覆:

version :square do
  process :make_square
  version :large do
    process :scale [800, 800]
  end
  version :small do
    process :scale [200,200]
  end
end

有什么方法可以只定义版本 (:square),然后制作一个函数,接受所有版本并向它们添加相同的颠覆 (:large, :small) retroactivly

如果你有一些版本并且需要创建另一个版本你可以使用:reprocess方法:

User.all.each {|m| m.avatar.recreate_versions! }

如果简单的需要在图片上传过程中从另一个版本创建图片版本你可以使用:from_version方法

class MyUploader < CarrierWave::Uploader::Base

  version :thumb do
    process resize_to_fill: [280, 280]
  end

  version :small_thumb, from_version: :thumb do
    process resize_to_fill: [20, 20]
  end

end