Nach einiger Fehlersuche kann ich nicht herausfinden, warum der ajax: success Callback meines Formulars nicht in Rails 3 aufgerufen wird.
Nachfolgend ist der Code, der letztendlich aus meiner Sicht generiert wurde:
JS-Code:
%Vor%Ajax-Form:
%Vor%Der Logik folgen, die in der Aktion auftritt, an die das Formular sendet:
%Vor%Ich habe Firebugged diese gesamte Anfrage / Antwort:
%Vor%Die Antwort lautet wie erwartet:
%Vor%200 OK Antwort sollte "Ajax: Erfolg" in meinem JS auslösen ... aber das passiert nicht. Irgendwelche Gedanken? Der Fehlerrückruf wird auch nicht getroffen ...
Ich hatte das gleiche Problem. Nach 90 Minuten der Suche habe ich es endlich zur Arbeit gebracht, indem ich Folgendes benutze:
%Vor%Kredit an: Ссылка
Ich habe erstellt und dann versucht, das, was ich gerade erstellt habe, zu löschen, alles über Ajax-Anfragen. hoffe, das kann jemandem helfen.
Nachdem ich viel mehr Zeit damit verschwendet habe, habe ich es endlich zum Laufen gebracht, indem ich folgendes gemacht habe:
1) Die Bindung 'ajax: success' wurde an application.js und nicht an die Tags meiner partiellen Datei verschoben.
2) Ändern von $ (function () {}) in jQuery (function ($) {})
Ich bin mir nicht ganz sicher, warum die beiden obigen Schritte das Problem lösen, aber sie tun es. Hoffe es hilft!
Ich hatte genau das gleiche Problem, und Ihre eigene Antwort auf Ihre Frage hat mir ebenfalls geholfen. Aber ich denke, das ist nur ein Workaround für das eigentliche Problem. Es gibt zwei mögliche Situationen, in denen dieses Problem auftritt:
Sie haben ein Upgrade von Rails 2 auf 3 durchgeführt und verwenden weiterhin die Prototypbibliothek (siehe Rails 3 AJAX Remote-Formular Rückrufe )
Sie haben zwei jQuery-Bibliotheken eingebettet (das war mein Problem)
Schauen Sie also in Ihren HTML-Quellcode, wenn eine andere Bibliothek in Konflikt mit jQuery steht.
Tags und Links jquery ruby-on-rails ajax forms