2011-09-11 10 views

Odpowiedz

12

właśnie w obliczu tego samego problemu i znaleźć następujące alternatywy, aby to działało:

Gem remotipart =>http://www.alfajango.com/blog/rails-3-ajax-file-uploads-with-remotipart/

jQuery plugin 'jaxy' =>https://github.com/adamlogic/jquery-jaxy

myślę jak pierwsza opcja lepiej. Ale dobrze mieć opcje. =)

+1

remotipart był ładny i łatwy w konfiguracji! wspaniała pomoc. – LondonGuy

+5

Remotipart jest świetny i nadal działa na Railsach 4. Oto bezpośredni link do strony github z dokumentacją, https://github.com/JangoSteve/remotipart. –

0

Przesyłanie obrazów AJAX nie działa, przynajmniej nie w standardowy sposób.

Są nowsze techniki HTML5, które sprawiają, że praca i obejścia wykorzystujące

Istnieje ogromna biblioteka, która robi wiele plików ajax przesyłanie z paska postępu i degraduje do korzystania z różnych technik w zależności od przeglądarki.

AJAX Prześlij biblioteka: http://valums.com/ajax-upload/

Będzie to wymagać trochę dodatkowej pracy, ale efekt może być naprawdę miło!

3

Nie można przesyłać plików za pośrednictwem AJAX, więc najwyraźniej Twoje żądanie pochodzi z prostego kodu HTML, ponieważ nie masz żadnych specyficznych elementów: js i rails uważa, że ​​jest to zwykłe żądanie HTML POST.

https://github.com/JangoSteve/remotipart

gem 'remotipart', '~> 1.2' 

i bundle install

//= require jquery.remotipart 

sample_layout.html.erb

<%= form_for @sample, :html => { :multipart => true }, :remote => true do |f| %> 
    <div class="field"> 
    <%= f.label :file %> 
    <%= f.file_field :file %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

do kontrolera

def create 
    respond_to do |format| 
    if @sample.save 
     format.js 
    end 
    end 
end 

create.js.erb

// Display a Javascript alert 
alert('success!'); 
<% if remotipart_submitted? %> 
    alert('submitted via remotipart') 
<% else %> 
    alert('submitted via native jquery-ujs') 
<% end %> 
+0

pracował idealnie, wielkie dzięki – anand

Powiązane problemy