当我更改缩略图头像时,文件名不会更改,浏览器会给出照片的旧版本。为避免这种情况,您必须不断重置缓存。为了解决这种情况,我认为每次都使用新名称创建新版本的裁剪照片。但是,如果我为裁剪后的版本设置了唯一的名称,则由于某种原因,头像不会上传到服务器
我试图将full_filename
方法添加到版本块中:
version :preview do
process :crop
process resize_to_fit: [150, 150]
def full_filename(for_file = model.avatar.file)
token = SecureRandom.base58(8)
"#{token}.jpg"
end
end
我也将save!
之后的recreate_versions!
添加到了裁剪化身的方法中:
def crop_avatar
if crop_x.present?
avatar.recreate_versions!
self.crop_x = nil
save!
end
end
它不起作用。阿凡达不会上传到服务器。
但是,如果我在文件名中指定了静态名称而不是令牌,则一切正常:
version :preview do
process :crop
process resize_to_fit: [150, 150]
def full_filename(for_file = model.avatar.file)
"something.jpg"
end
end
那么,如何为每个版本的头像设置唯一的值?