recreate_versions!使用wiki中声明的唯一文件名方法

时间:2011-12-03 21:35:58

标签: ruby rubygems carrierwave

我正在尝试使用method recreate_versions!,但我正在使用wiki中的方法来创建唯一的文件名。问题是,当我运行recreate_versions!时,它会更改文件名,但不会在已安装的对象本身上更新它们。我怎么能刷新这些URL?

2 个答案:

答案 0 :(得分:11)

在处理缓存时有效的解决方案是在重新创建版本后保存已挂载的对象:

示例:

avatar.image.recreate_versions!
avatar.save!

这样,即使重新创建版本并正确处理缓存,也可以继续使用唯一的文件名。

答案 1 :(得分:3)

这对我有用。它使用文件名(如果已存在)。所以当你重新创建_versions时它们不会改变!

def filename
  if original_filename
    if model && model.read_attribute(:avatar).present? #or whatever you call your column
      model.read_attribute(:avatar)
    else
      # create new filename however you're doing it
    end
  end
end