Tengo muchas formas diferentes en mi aplicación, todas ellas usan remote: true
. Pero uno no funciona correctamente, porque no usa una llamada ajax.form_tag con control remoto: verdadero no hace una solicitud de Ajax
limpiado, que parece:
<%= form_tag(upload_file_ajax_path, remote: true, multipart: true) do %>
<%= file_field_tag(:file) %>
<%= submit_tag("upload") %>
<%end%>
La etiqueta se parece a:
<form accept-charset="UTF-8" action="/mycontroller/upload_file_ajax" data-remote="true" enctype="multipart/form-data" method="post">
<input name="utf8" type="hidden" value="✓">
<input name="authenticity_token" type="hidden" value="1234"></div>
<input id="file" name="file" type="file">
<input name="commit" type="submit" value="upload">
</form>
Y la entrada rutas:
post "mycontroller/upload_file_ajax", as: "upload_file_ajax"
Pero el control de la llamada en Chrome Herramientas de desarrollo , el encabezado dice:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
y no como las otras formas se parecen:
Accept:*/*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript
añadí los archivos js a mi diseño
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
E incluso si quito toda mi código JS de las application.js archivo (excepto el //= require jquery
...), el formulario no funciona correctamente.
¿Qué extrañe?
Mea culpa, se me olvidó esto. Grrr ... ¡Gracias! – Bjoernsen
Acabas de ahorrarme horas de frustración. Ni siquiera sabía que no podías usar ajax para subir archivos. Acabo de probar con Rails 4.2.5 y esto todavía funciona. Literalmente se retiró en remotipart y mi forma comenzó a funcionar. ¡Gracias! –