W mojej obecnej aplikacji rails używam biblioteki ajax uploader, która wymaga odpowiedzi z jsonem {success:true}
, aby wskazać, że plik został pomyślnie przesłany.Rails JS Response, renderuje status i szablon?
W mojej aplikacji pliki to obrazy, a po przesłaniu chciałbym dodać to do strony. Normalnie bym zrobił coś takiego:
respond_to do |format|
format.html { redirect_to @resource, :notice => 'Created.' }
format.js
end
w powyższym przykładzie moja odpowiedź JS uczyniłaby odpowiedni szablon, taki jak create.js.erb
który może powiedzieć coś takiego ...
$('#resources').append('<%= escape_javascript(render '@resource') %>');
To jak mam robiłem rzeczy takie jak komentarze Ajax itp. w przeszłości. Teraz, aby uzyskać uploader pracuje mój respond_to
blok aktualnie robi to:
format.js { render :json => { :success => true } }
To sprawia, że praca do przesyłania ale wydaje mi się wykluczają dodawanie świadczonych partials do strony jakbym normalnie z odpowiedzi Ajax.
Moje pytanie brzmi, czy jest jakiś sposób, aby to osiągnąć? Jeśli nie, w jaki sposób wypełniłeś stronę renderowanymi obiektami po ich pomyślnym utworzeniu?
ten pomysł działa. Nie wiedziałem o 'render_to_string', ale w testowaniu znalazłem, że mogę również użyć' .getScript' w wywołaniu zwrotnym, aby pobrać częściowe. Twoja metoda jest czystsza. Dzięki! – Andrew
Jedna uwaga ... domyślnie 'escape_javascript' nie jest dostępna dla kontrolera i nie jest potrzebna, ponieważ metoda' render: json' robi to mimo wszystko. – Andrew
fajne, cieszę się, że to pomaga. Ma sens, że 'escape_javascript' nie działa tam, nie wiem o czym myślałem. Dziękuję za opinię na temat odpowiedzi – danivovich