在我的应用程序中,我正在创建一个上传多个文档的表单。现在我已经发布了包含2个上传文档的表单,但由于错误而无法保存在数据库中。但我得到了上面提到的所有参数。请帮我解决这个问题。
在控制器中:
def create
@sr_document = SrDocument.new(sr_document_params)
end
def sr_document_params
params.require(:sr_document).permit(:file_type, :file, :service_request_id, :file_file_name, :file_content_type, :file_file_size)
end
在日志中:
“sr_document”=> { “文件”=> [
@临时文件=#, @ original_filename =“Reliance Web-Chat.pdf”, @ content_type =“application / pdf”,@ headers =“Content-Disposition: 形式数据;名= \ “sr_document [文件] [] \”;文件名= \“倚 Web-Chat.pdf \“\ r \ nConContent-Type:application / pdf \ r \ n”>,
@tempfile =#\,@ original_filename =“Flipkart.pdf”,@ content_type =“application / pdf”, @ headers =“Content-Disposition:form-data; 名= \ “sr_document [文件] [] \”; filename = \“Flipkart.pdf \”\ r \ nConContent-Type:application / pdf \ r \ n“>
]}
答案 0 :(得分:3)
您正在获取文件数组,因此我认为您遇到了问题: 尝试允许您的文件属性为:
def sr_document_params
params.require(:sr_document).permit(:file_type, :file => [], :service_request_id, :file_file_name, :file_content_type, :file_file_size)
end
答案 1 :(得分:1)
这些文件存储在一个数组中,文件的信息如file_content_type
,..是每个文件的属性,所以你不能这样做。
请尝试:
def create
sr_documents = []
sr_document_params[:file].each do |file|
sr_documents << SrDocument.new({ file_content_type: file.content_type,
file_size: file.size,
file: file })
end
end
def sr_document_params
params.require(:sr_document).permit(file: [])
end