我想重命名已下载的文件carrierwave。在上传程序中,我将以下代码添加到加载了所需名称的新文件中。
是:
def filename
"photo.jpg" if original_filename
end
成为:
def filename
"#{secure_token}.jpg" if original_filename
end
protected
def secure_token
var = :"@#{mounted_as}_secure_token"
model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.uuid)
end
我已尝试使用rake任务重新创建已下载的文件:
RoutePointPhoto.all.each { |i| i.photo.recreate_versions! }
这将创建具有正确名称的文件副本。但是在数据库中,文件名保持不变“photo.jpg” 提示我做错了什么?
答案 0 :(得分:0)
我做的是创建了一个文档控制器,我管理文件。 show动作是重命名的地方
#documents_controller.rb
def show
data = open(document.file_url.to_s)
#change #{'photo'} to what every you want to call the file
send_data data.read, filename: "#{'photo'}.#{document.file_identifier.split('.').last}", disposition: 'inline'
end
我希望这适用于你正在寻找的东西