Wenn ich in der Vergangenheit einen Teil meiner Ansicht über Ajax aktualisieren wollte, habe ich Folgendes getan:
#tracks
remove_track
, das alle Werte aktualisiert usw., und fügen Sie format.js
hinzu.
remove_track.js.erb
aufruft, was so etwas enthält wie: $('#tracks').html("<%=j render 'cds/show_tracks' %>");
remote: true
in der Verknüpfung, die diese Aktion aufruft. Das alles ist in Ordnung, aber jetzt versuche ich, eine allgemeine index
-Ansicht zu löschen und zu aktualisieren, indem ich die normale Methode destroy
für Flexibilität benutze, was bedeutet, dass ich diese Methode entweder über Ajax oder normal aufrufen kann. Ich dachte mir, dass es so üblich ist, dass es einen besseren Weg gibt als alles oben genannte.
Ich kann die destroy-Methode aufrufen, um meine destroy.js.erb
-Datei aufzurufen, indem ich sie einfach in den Controller setze:
und natürlich remote: true
auf den Link setzen.
Was ich nicht tun kann, ist, die Ansicht zu aktualisieren. Die Tabelle, die ich aktualisieren möchte, ist in einem Div mit einer eindeutigen ID eingeschlossen. Da es sich jedoch nicht um eine partielle Tabelle handelt, verweigert sie die Aktualisierung des Inhalts. Vielleicht vermisse ich etwas.
Muss ich einen Teil erstellen und ihn mit der obigen Methode auffrischen oder gibt es einen magischeren Weg dazu (außer Turbolinks)?
Danke.
PS
Außerdem habe ich gerade bemerkt, dass dies den zusätzlichen Nachteil hat, dass ich den Rest der Parameter nicht zur Destroy-Methode übergeben kann, da sie nur die Objekt-ID übergibt, die mit den normalen CRUD-Routen zerstört werden soll. Wenn ich versuche, platform(action: destroy)
oder platform(method: delete)
zu verwenden, bekomme ich einen Fehler:
Was bedeutet, dass ich eine neue Route erstellen muss, wenn ich diese Parameter übergeben möchte ...
Ein weiterer Nachteil für all das ist, dass ich die gesamte Logik für Suchen und Sortierungen, die ich in der Index-Methode habe, erneut in der Methode destroy wiederhole. Ich bin sicher, das ist definitiv nicht der Weg, es zu tun.
Tags und Links ajax partial-views ruby-on-rails-3.2