我正在使用carrierwave上传图片。我需要我的主图像版本保持其原始格式,但其他版本需要转换为 gif。
目前我正在做这样的事情:
def filename
change_ext_to_gif(super)
end
def change_ext_to_gif(ext)
ext.chomp(File.extname(ext)) + ".gif"
end
version :preview do
process :resize_to_fill => [60, 60]
process :convert => "gif"
end
version :full do
process :resize_to_limit => [320, 320]
process :convert => "gif"
end
version :mobile do
process :resize_to_limit => [72, 96]
process :convert => "gif"
end
当然,这也会改变我原始文件的扩展名。有没有办法解决这个问题?我想我需要覆盖版本块中的一些方法。但我无法弄清楚它们(我尝试覆盖文件名和 url 这有助于但防止版本的文件被删除)。