rendern partiell beim Klicken

8

Ich versuche, die Menge an Code zu reduzieren, die in meiner App neu geschrieben werden muss, und möchte eine Reihe von standardmäßigen operativen Teiltönen aufrufen.

Derzeit ist dies die Methode, die ich verwende

ruft den Teil

auf %Vor%

dann in meinem Teil

%Vor%

Wie kann ich das haben? Links wie 'Löschen', '#',: partial = & gt; 'Layouts / Löschen',: remote = & gt; :wahr?

, so dass ich nur partiell rendere, wenn ich darauf klicke und nicht, wenn die Seite tatsächlich lädt

    
Paul 'Whippet' McGuane 02.03.2013, 13:02
quelle

3 Antworten

26

Sie können das mit Javascript wie:

tun %Vor%

Die Aktion in Ihrem entsprechenden Controller ist dann:

Mein Controller:

%Vor%

Dann kannst du delete_content.js.erb in deinem korrekten Verzeichnis des Links erstellen und dort den folgenden Code eingeben:

delete_content.js.erb

%Vor%

Dann aus Ihrer Sicht:

delete_content.html.erb

%Vor%

Vergessen Sie nicht, Ihre teilweise _my_partial.html.erb in den gleichen Ordner zu legen.

    
My God 02.03.2013, 13:15
quelle
15

Um die akzeptierte Antwort hinzuzufügen, habe ich sie erst nach dem Ändern des js-Teils in folgendes umgesetzt:

%Vor%

Ohne escape_javascript wurde nur das Teil im Hintergrund gerendert und die Ansicht nicht aktualisiert.

    
Alex Onsager 16.11.2013 06:57
quelle
0

in der Ansicht tun Sie dies:

%Vor%

auf Ihrem Controller

%Vor%

und fügen Sie der Aktion confirm_deletion in js eine Ansicht hinzu

%Vor%

Das würde eine Ajax-Anfrage zum Laden dieses benutzerdefinierten Bestätigungsdialogs machen. Vielleicht möchten Sie einen Wrapper zum Einfügen des Dialogs hinzufügen, anstatt body.append

zu verwenden     
arieljuod 02.03.2013 13:14
quelle