我在我的rails应用程序中使用了jquery-fileupload-rails gem / BlueImp / jquery-file-upload。
我试图在使用form_for @transaction的/ Transactions /:id / edit页面上传与我的模型(事务)相关联的嵌套资源(文档)。此表单使用PUT更新事务。
现在,我的.fileupload元素是页面底部单独的form_for中的div,并且在transaction_documents_path的选项中设置了url。它使用POST来创建交易文档并且有效。
我想在我的编辑表单中集成.fileupload元素div而不是两个表单。从文档中可以看出这是可能的。我能够将正确的transactions_documents_path url传递给fileupload,但是尝试使用fileupload的方法或类型选项指定POST方法似乎并没有覆盖form_for的PUT方法。当我开始上传时,我收到路由错误(POST工作正常,PUT没有。)
关于我如何发布而不是PUT的任何建议?
.fileupload div:
<div class="container" id="fileupload" data-type="POST" data-url="<%= transaction_documents_path(@transaction)%>">
transactions.js.coffee:
->
$("#fileupload").fileupload
method: 'POST'
type: 'POST'
progressall: (e, data) ->
progress = parseInt(data.loaded / data.total * 100, 10)
$(".progress .bar").css "width", progress + "%"
答案 0 :(得分:0)
你现在可能已经解决了问题或者解决了问题,但也许它可以解决同样的问题。您可能正在指定您的外部表单作为put方法(您可以查找名为“_method”的隐藏输入。您可以将其称为帖子:
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :post }) do |f| %>
希望有所帮助。此外,它有趣的阅读一些关于PUT和POST方法。有时PUT是上传文件最合适的方法。有时...: - )