Ho molte forme diverse nella mia app, tutte usano remote: true
. Ma uno non funziona correttamente, perché non usa una chiamata Ajax.form_tag con remote: true non effettua una richiesta Ajax
ripulito, sembra che:
<%= form_tag(upload_file_ajax_path, remote: true, multipart: true) do %>
<%= file_field_tag(:file) %>
<%= submit_tag("upload") %>
<%end%>
Il tag è simile 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>
E la voce itinerari:
post "mycontroller/upload_file_ajax", as: "upload_file_ajax"
Ma il controllo della chiamata in Chrome Dev Tools , l'intestazione dice:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
e non come le altre forme assomigliano:
Accept:*/*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript
ho aggiunto i file js al mio layout
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
E anche se mi tolgo tutto il mio codice JS fuori dalle application.js file (eccetto lo //= require jquery
...), il modulo non funziona correttamente.
Cosa mi sono perso?
Mea culpa, ho dimenticato questo. Grrr ... Grazie! – Bjoernsen
Mi hai appena risparmiato ore di frustrazione. Non sapevo nemmeno che non si potesse usare ajax per i caricamenti di file. Appena testato con Rails 4.2.5 e funziona ancora. Remotipart letteralmente lasciato cadere e il mio modulo ha iniziato a funzionare. Grazie! –