Zuvor, in Schienen 2.3.8 habe ich die Prototyp-Helfer link_to_remote
und form_remote_for
(unter anderem) verwendet.rails3 rails.js und jquery fangen Erfolg und Misserfolg von AJAX-Anfragen
Diese hatten die Möglichkeit, :update
wie folgt:
link_to_remote "Add to cart",
:url => { :action => "add", :id => product.id },
:update => { :success => "cart", :failure => "error" }
(ein Beispiel aus dem documentation). Dieses Beispiel würde bei Erfolg das html-Element mit der Klasse "cart" und bei einem Fehler die Klasse "error" aktualisieren.
Jetzt glaube ich die Vorgehensweise geändert hat, sondern wir schreiben:
link_to "Add to cart", :url => {:action => "add", :id => product.id},
:remote => true
und es gibt keine Option :update
mehr einzustellen. Statt eines normalen html, machen wir jetzt JavaScript aktivieren, wie folgt aus (in jquery):
$('.cart').replaceWith(<%= escape_javascript(render :partial => 'cart') %>)
aber, wie Sie eine Fehlersituation gehe? Behandle ich es in meinem Controller und verwende separate Ansichten?
Es scheint mir nützlich zu sein, irgendwie das Verhalten nachzuahmen, das wir vorher hatten. Irgendwelche Ideen?
Bin ich der einzige, der sie denkt, einen Schritt zurück mit dem Entfernen von einfachem Javascript von Rails? – Amala
Wie css einen Großteil des Layouts vom Inhalt (HTML) trennt, ist es auch besser, das Verhalten von HTML zu trennen (also unauffällige js zu verwenden). Obwohl dies in der Tat schwieriger ist (zuerst), macht es auch Ihren HTML/JS leichter lesbar (verwenden Sie Ihre Klassennamen und Identifikatoren mit Bedacht), und macht Ihre JS einfacher zu pflegen und im weiteren Verlauf wiederzuverwenden. – nathanvda
'ajax: loading' funktionierte nicht für mich, ich musste 'ajax: before' verwenden - nur für den Fall, dass jemand anderes auf dieses Problem trifft. (Rails 3.1.1) – tmaximini