gpt4 book ai didi

ruby-on-rails - 如何更新/重命名载波上传的文件?

转载 作者:行者123 更新时间:2023-12-05 01:18:40 26 4
gpt4 key购买 nike

我无法弄清楚如何在 rails 3.2.6 中更新/重命名使用 Carrierwave-mongoid 上传/管理的文件。我想重命名数据库和文件系统中的文件。

像这样的东西也许...

def rename( id , new_name )
f = UploadedFile.find(id)

if f.update_attributes({ f.file.original_filename: new_name }) # this is WRONG, what is right???
new_path = File.join( File.dirname( f.file.current_path ) , new_name ))
FileUtils.mv( f.file.current_path , new_path )
end

return f
end

让我补充一下这是在它已经上传之后。

最佳答案

我能够完成以下工作,尽管我确信有一种更优雅的方式。我很感激对以下内容的任何评论

*将此添加到 app/uploaders/file_uploader.rb

def rename(new_name)
sf = model.file.file
new_path = File.join( File.dirname( sf.file ) , "#{new_name}#{File.extname( sf.file )}")
new_sf = CarrierWave::SanitizedFile.new sf.move_to(new_path)
model.file.cache!(new_sf)
model.save!
return model
end

谢谢!

关于ruby-on-rails - 如何更新/重命名载波上传的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12964255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com