Carrierwave - 追溯定义颠覆

时间:2015-09-17 12:07:17

标签: ruby-on-rails ruby carrierwave

在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

1 个答案:

答案 0 :(得分:0)

如果您有某个版本并需要创建其他版本,则可以使用: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