jquery fileupload rails方法默认为put而不是post

时间:2014-01-06 20:14:25

标签: ruby-on-rails post methods jquery-file-upload

我在我的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 + "%"

1 个答案:

答案 0 :(得分:0)

你现在可能已经解决了问题或者解决了问题,但也许它可以解决同样的问题。您可能正在指定您的外部表单作为put方法(您可以查找名为“_method”的隐藏输入。您可以将其称为帖子:

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :post }) do |f| %>
希望有所帮助。此外,它有趣的阅读一些关于PUT和POST方法。有时PUT是上传文件最合适的方法。有时...: - )