Rails - Zeigt Ergebnisse von Index- und Show-Aktionen über Ajax an

8

Ich habe eine sehr einfache Post-Ressource mit zwei Aktionen, index und show . Meine Vorlage enthält eine Seitenleiste mit Links zu jedem vorherigen Beitrag. Ich möchte, dass die Seitenleisten-Links ihren Inhalt (d. H. die Ergebnisse der "show" -Aktion ) über Ajax anzeigen

Ich weiß, es gibt viele ausgezeichnet tuts , die Ihnen zeigen, wie Sie ein Formular erstellen, das einreicht mit ajax aber dieses mal möchte ich damit den inhalt meines indexes anzeigen und aktionen ohne seite referensh anzeigen

. Gibt es anständige Tutorials, die Tipps geben, wie man das macht?

Ich denke, ich muss eine show.js.erb -Datei erstellen und meiner Indexaktion mitteilen, dass sie auf js reagieren soll, aber ich bin ein bisschen hängen geblieben. Ich weiß nicht genau, was ich in die Show-Aktion des Controllers oder in show.js.erb schreiben soll - es ist ein bisschen schwierig zu visualisieren, was ich tun muss

PS - Verwenden von Schienen 3.0.7, jquery-1.5

    
stephenmurdoch 17.05.2011, 23:23
quelle

2 Antworten

10

Hat das funktioniert, war es am Ende sehr einfach.

Schritt 1 - Fügen Sie :remote => true zu Links in der Seitenleiste hinzu

%Vor%

Schritt 2 - Sagen Sie Ihrem Controller, dass er auf der show action

auf JS antworten soll %Vor%

Schritt 3 - Erstellen Sie _post.html.haml

%Vor%

Schritt 4 - Erstellen Sie show.js.erb und ersetzen Sie den HTML-Code im #main-Div durch den Inhalt des _post-Partials (den wir in Schritt 3 erstellt haben)

%Vor%

Jetzt wird der gesamte Inhalt über Ajax übergeben und es funktioniert gut.

    
stephenmurdoch 18.05.2011, 05:10
quelle
1

Ich habe keine vollständige Antwort parat, weil ich auch relativ neu bin.

Aber ich würde mich zunächst mit der Methode get() von JQuery beschäftigen. Sie sollten in der Lage sein, den Index oder die show-Methode aufzurufen. Diese Methoden sollten den HTML-Code zurückgeben, der im Nicht-Seitenbereich der Seite angezeigt werden soll. Sie können den Callback-Handler von get() verwenden, um diesen HTML-Code in das entsprechende div auf der Seite einzufügen.

Tut mir leid, dass das ein bisschen vage ist, aber wenn du damit spielst, wette ich, dass du es herausfinden wirst.

    
CharlieMezak 17.05.2011 23:35
quelle

Tags und Links