ruby-on-rails – Rails 3 Carrierwave如何删除作为模型属性的文件?

ruby-on-rails – Rails 3 Carrierwave如何删除作为模型属性的文件?,第1张

概述我跟随了Railcast#253 http://railscasts.com/episodes/253-carrierwave-file-uploads,效果很好.但后来我用ActiveAdmin实现了它,因此Formtastic(ActiveAdmin使用Formtastic作为表单). 所以我可以上传文件和下载文件. 问题是,当链接删除链接时,似乎Carrierwave期望模型而不是模型的属性 我跟随了Railcast#253 http://railscasts.com/episodes/253-carrierwave-file-uploads,效果很好.但后来我用Activeadmin实现了它,因此Formtastic(Activeadmin使用Formtastic作为表单).

所以我可以上传文件和下载文件.

问题是,当链接删除链接时,似乎CarrIErwave期望模型而不是模型的属性.

我有模型Shipment,它有hbl_pdf属性(pdf文档).这是我的删除链接…

row("HBL") { link_to 'remove',shipment.hbl_pdf,:confirm => "Are you sure?",:method => :delete }

我收到错误…未定义的方法model_name for pdfUploader:Class

我不想删除货件,只删除文件.

解决方法 你为什么不打电话给remove_hbl_pdf!而在装运对象上呢?阅读以下内容的“删除上传的文件”部分: https://github.com/jnicklas/carrierwave#readme

link_to 'remove',remove_shipment_pdf_path(shipment),:method => :delete

并在你的控制器

def remove_shipment_pdf  shipment = Shipment.find_by_ID(params[:shipment_ID])  shipment.remove_hbl_pdf! if shipment  # respond with something or redirectend

remove命令的语法基于属性的名称.因此,如果您的模型属性名称是.hbl_pdf,那么它是remove_hbl_pdf!如果它是.image那么它将是remove_image!

总结

以上是内存溢出为你收集整理的ruby-on-rails – Rails 3 Carrierwave如何删除作为模型属性的文件?全部内容,希望文章能够帮你解决ruby-on-rails – Rails 3 Carrierwave如何删除作为模型属性的文件?所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/langs/1250173.html

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

发表评论

登录后才能评论

评论列表(0条)

保存