这让我一整天都难过。
我的应用程序提供文件上传,一旦上传,它就会运行 create.js.erb 并将新记录添加到页面中。
我的 HTML 看起来像这样,
<div id="doc_upload">
<%= form_for Document.new, remote: true do |f| %>
<%= f.file_field :file, multiple: true, name: "document[file]" %>
<%= f.hidden_field :plot_id %>
<%= f.submit 'upload' %>
<% end %>
</div>
我在文档目录中有一个 create.js.erb 文件。我目前正在使用 JQuery 文件上传,拖放文件上传不会导致任何问题。但是,当我使用此表单手动选择文件并上传时,我得到:
- 406 HTTP 错误
- 页面重定向到 /documents
- 当我回去时,文件已成功上传并保存。
标题如下。
Request URL:http://localhost:3000/documents
Request Method:POST
Status Code:406 Not Acceptable
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8}
我的控制器是:
def create
@document = Document.create(params[:document])
respond_to do |format|
format.js
end
end
正如我所说,这真的让我摸不着头脑,因为 Ajax 请求似乎没有被触发。这是否意味着它可能与不引人注目的 JS 没有拾取远程真实数据类型有关。这是我能想到重定向的唯一原因。
如果是这样,我如何确认和解决这个问题?
任何帮助都会很棒。
罗斯