Von JavaScript aus rufe ich einen Controller über AJAX auf:
%Vor%In meinem Controller habe ich:
%Vor%In meinen Routen habe ich:
%Vor%In lighbox.js.erb habe ich:
%Vor%Aus irgendeinem Grund wird die Warnung nie aufgerufen. Ich bekomme keine Fehlermeldungen, weder über den Server noch über Firebug. Ich weiß nicht, was da schief gehen könnte. Irgendwelche Ideen?
Es stellt sich heraus, dass auf der Clientseite mein JavaScript als Text gerendert wurde. Ich habe dies durch einen Blick auf den Konsolen-Feed bestätigt. Es sagte:
%Vor%Diese letzten zwei Wörter sollten "als JS" gelesen haben. Nachdem ich herumgewühlt habe, fand ich diese Blogpost
%Vor%Danke für Ihre Hilfe, alle!
Ich denke, das liegt daran, dass Sie books.js
aufrufen müssen:
In der Indexaktion:
%Vor% Und lightbox.js.erb
sollte in app / views / books
Wenn es immer noch nicht funktioniert, versuchen Sie books/index.js
aufzurufen
Sie können auch firebug / chrome verwenden, um zu überprüfen, wie der Server auf Ihren Ajax-Anruf reagiert
Sie können dieses Skript zum Aufruf Ihrer Aktion in Java-Skript
ausprobieren %Vor%Und in Ihrem Controller versuchen Sie dies. Ich schlage vor, eine neue Aktion zu erstellen
%Vor%In der Routen-Datei:
%Vor% Für jeden, der darauf stolpert und einfach eine Controller-Aktion aufrufen möchte, die mit einer js.erb
-Datei antwortet, habe ich es auf diese Weise erreicht (mit Hilfe von Anthony Albertos fantastische Antwort ).
Controller-Aktion
%Vor%some_action.js.erb
%Vor%Ajax-Anruf
%Vor% Ich habe ein ähnliches Problem auf link_to Helfer, aber das wurde mit remote:true
Tags und Links ruby-on-rails ajax