如何创建具有不同名称的文件版本(载波)?

时间:2019-06-13 11:27:02

标签: ruby-on-rails carrierwave

当我更改缩略图头像时,文件名不会更改,浏览器会给出照片的旧版本。为避免这种情况,您必须不断重置缓存。为了解决这种情况,我认为每次都使用新名称创建新版本的裁剪照片。但是,如果我为裁剪后的版本设置了唯一的名称,则由于某种原因,头像不会上传到服务器

我试图将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

那么,如何为每个版本的头像设置唯一的值?

0 个答案:

没有答案
相关问题