【发布时间】:2011-12-03 21:35:57
【问题描述】:
我正在尝试使用method recreate_versions!,但我正在使用 wiki 中的方法来创建唯一的文件名。问题是,当我运行recreate_versions! 时,它会更改文件名,但不会在已安装对象本身上更新它们。如何刷新这些 URL?
【问题讨论】:
标签: ruby rubygems carrierwave
我正在尝试使用method recreate_versions!,但我正在使用 wiki 中的方法来创建唯一的文件名。问题是,当我运行recreate_versions! 时,它会更改文件名,但不会在已安装对象本身上更新它们。如何刷新这些 URL?
【问题讨论】:
标签: ruby rubygems carrierwave
在处理缓存时有效的解决方案是在重新创建版本后保存已安装的对象:
例子:
avatar.image.recreate_versions!
avatar.save!
这样,即使在重新创建版本并正确处理缓存时,您也可以继续使用唯一的文件名。
【讨论】:
这对我有用。如果文件名已经存在,它将使用该文件名。所以当你 recreate_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
【讨论】: