2012-07-07 25 views
16

Uygulamamda birçok farklı form var, hepsi remote: true kullanıyor. Ama biri doğru çalışmıyor, çünkü ajax çağrısı kullanmıyor. form_tag uzaktan: true ajax isteği yapmıyor

benzediğini, temizledik:

<%= form_tag(upload_file_ajax_path, remote: true, multipart: true) do %> 
    <%= file_field_tag(:file) %> 
    <%= submit_tag("upload") %> 
<%end%> 

etiketi şuna benzer:

<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> 

Ve yolları girişi:

post "mycontroller/upload_file_ajax", as: "upload_file_ajax" 

Fakat Chrome Dev Araçlar çağrıyı kontrol başlıkta yazan:

Benim düzene

<%= stylesheet_link_tag "application", :media => "all" %> 
<%= javascript_include_tag "application" %> 
<%= csrf_meta_tags %> 

Ve hatta ben application.js dışında tüm JS kodu kaldırırsanız js dosyaları eklendi

Accept:*/*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript 

: gibi ve gibi değil diğer formları

bakmak dosya (//= require jquery ... hariç), form doğru çalışmıyor.

Neyi özledim?

cevap

25

Dosya yüklemeleri için AJAX'ı kullanamazsınız. Bu normalde.

Bu işlevi, uzak formlarınıza ekleyen harika bir mücevher, Remotipart var. application.js

//= require jquery.remotipart 
+0

Mea Culpa eklenti tarafından sağlanan ajaxSubmit yöntemini kullanarak AJAX istek üzerinden dosya yüklemek için Jquery Form eklenti kullanmak deneyebilirsiniz, ben bu unuttum. Grrr ... Teşekkürler! – Bjoernsen

+0

Sadece saat hayal kırıklığını kurtardın. Dosya yüklemeleri için ajax kullanamadığını bile bilmiyordum. Sadece Rails 4.2.5 ile test edildi ve bu hala çalışıyor. Tam anlamıyla remotipartı bıraktı ve formum çalışmaya başladı. Teşekkürler! –

2

probleminde

gem 'remotipart', '~> 1.0' 

size deneyim dosyaları AJAX istekleri ile gönderilemez gerçeğinden kaynaklanmaktadır.

Sen

İlgili konular