繁体   English   中英

载波多文件上传-活动管理员

[英]Carrierwave Multiple File Uploading - Active Admin

我有一个可以添加附件的页面。 我想在浏览过程中添加多个文件,所以我在输入中添加了:multiple => true方法,因此在此输入过程中如下所示:f.has_many:attachments

f.input :file , :input_html => { :multiple => true }

对于要添加/在附件面板上看到的多个附件,我具有以下功能:

attachment=[]

(0..params[:kayako_client_ticket][:attachment].count-1).each do |f|
 attachment << {:filename => params[:kayako_client_ticket][:attachment]      
 [f].original_filename,:data => File.new(params[:kayako_client_ticket] 
 [:attachment][f].tempfile).read}
end unless params[:kayako_client_ticket][:attachment].blank?

在我的模型文件中,附件的引用如下:

has_many :attachments, :as => :attachable, :dependent => :destroy

如果我添加多个文件,则会出现此错误:

You are not allowed to upload nil files, allowed types: jpg, jpeg, gif, png, doc, docx, xls, xlsx, xlsb, csv, txt, ppt, pptx, pps, ppsx, pdf, xpf

在这种情况下,您建议我做什么?

PS:感谢您将来的回答。

如果将代码重构一些,可能会有所帮助。 考虑一下

attachments = params[:kayako_client_ticket][:attachment]

unless attachments.empty?
  attachments.inject([]) do |array, attachment|
    array << {filename: attachment.original_filename, data: File.new(attachment.tempfile).read}
  end
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM