我们现在在用 carrierwave 来处理图片上传,想像 ruby-china 这样处理文件名,
def filename
if super.present?
ext = File.extname(original_filename)
fname = Digest::MD5.hexdigest(self.read)
@name ||= "#{fname}#{ext}"
end
end
这部分代码我是写在一个 BaseUploader 里面的,这样所有的图片处理都用这个逻辑了。 但是我们有用到
version :thumb do
process :resize_to_fill => [48,48]
end
这样的问题是 假如有一个图片的原始内容的 md5 是 111111111111,resize 后的内容的 md5 是 22222222, 会导致: model.avatar.url ===> /xxx/xxxx/111111111111.jpg model.avatar.thumb.url =====> /xxx/xxxx/thumb_111111111111.jpg 而实际上: model.avatar.url ===> /xxx/xxxx/111111111111.jpg model.avatar.thumb.url =====> /xxx/xxxx/thumb_22222222.jpg
有什么办法解决,难道要在 model 加变量来处理?