我正在使用carrierwave和rmagick来处理我的图片上传。我现在在image_uploader.eb中添加了一个新版本(smallthumb):
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :file
def store_dir
"uploads/images"
end
version :thumb do
process :resize_to_fill => [250, 250]
end
version :smallthumb do
process :resize_to_fill => [70, 70]
end
def extension_white_list
%w(jpg jpeg gif png)
end
end
我有一个名为“image”的模型,其中安装了图像上传器:
class Image < ActiveRecord::Base
attr_accessible :date, :description, :name, :size, :image, :article_ids
has_and_belongs_to_many :articles
mount_uploader :image, ImageUploader
end
我已经读过我需要调用recreate_versions !,但我不明白我需要在哪里调用此操作以及如何调用。我在公共/上传/图像的实时服务器上有我的图像。如何重新创建所有这些图像的版本(在我的开发机器和实时服务器上),以便我也有图像的小版本?
答案 0 :(得分:5)
Image.all.each { |i| i.image.recreate_versions! }
答案 1 :(得分:2)
假设user model
有一个image uploader
。
然后尝试这个
user.all.each {|x|x.image.recreate_versions!}
OR
User.all.each do |user|
user.avatar.recreate_versions!
end
答案 2 :(得分:0)
来自https://github.com/carrierwaveuploader/carrierwave#recreating-versions
Image.find_each do |image|
image.image.recreate_versions! if image.image?
end