ruby-on-rails – 如何更新重命名carrierwave上传的文件?

ruby-on-rails – 如何更新重命名carrierwave上传的文件?,第1张

概述我无法弄清楚如何在rails 3.2.6中更新/重命名使用Carrierwave-mongoid上传/管理的文件.我想重命名数据库中的文件以及文件系统. 这样的事可能…… def rename( id , new_name ) f = UploadedFile.find(id) if f.update_attributes({ f.file.original_filename: new_ 我无法弄清楚如何在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 fend

让我添加它是在它已经上传之后.

解决方法 我能够得到以下工作,虽然我确信有更优雅的方式.我对以下任何评论表示感谢

*将此添加到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 modelend

谢谢!

总结

以上是内存溢出为你收集整理的ruby-on-rails – 如何更新/重命名carrierwave上传的文件?全部内容,希望文章能够帮你解决ruby-on-rails – 如何更新/重命名carrierwave上传的文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1279511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存