我的应用程序提供上传文档,一旦上传它运行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>
我在documents目录中有一个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没有拿起远程真实数据类型有关.这是我能想到重定向的唯一原因.
如果是这样,我如何确认并修复此问题?
任何帮助都会很棒.
罗斯
如果您在表单中上传文件,则必须添加 :multipart => true.但是you cannot post a multipart form via AJAX
精彩评论