我想知道是否可以将不同的图像版本存储到不同的位置。
假设我有一些像这样定义的私人Carrierwave文件夹:
def store_dir
"#{Rails.root}/private/uploads/"
end
上传图片的几个版本:
version :medium do
process :resize_to_limit => [400, 400]
end
version :large do
process :resize_to_limit => [800, 800]
end
version :thumb do
process :resize_to_limit => [200, 200]
end
我想在已定义的store_path
中存储已上传的图片,中等版本和该版本的大图片版本,但希望将鼠标版本提供给存储在公共文件夹中的用户,例如在该默认公用文件夹中: / p>
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
我怎样才能做到这一点?谢谢!
答案 0 :(得分:3)
您只需覆盖store_dir
块内的version
即可。所以对你的例子来说,
version :medium do
process :resize_to_limit => [400, 400]
end
version :large do
process :resize_to_limit => [800, 800]
end
version :thumb do
process :resize_to_limit => [200, 200]
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
答案 1 :(得分:2)
在旧版本的carrierwave中我使用了version_name,我不确定它现在是否有效
def store_dir
if version_name != 'thumb'
# path for other versions
else
# path for thumb version
end
end