Ich habe eine Dashboard-Seite eines Benutzers, auf der linken Seite eine Seitenleiste mit Links wie Projekte, Blogs usw. Ich möchte in der Lage sein, auf einen Link wie den Link "Projekte" und dann im Hauptbereich auf die Ansicht zu klicken Für Projekte würde laden (Ansicht wäre eine Bullet-Liste von Projekten), ohne die Seite zu aktualisieren. Ich versuche, dies mit AJAX zu erreichen, aber die Dinge funktionieren nicht.
Hier ist, wie ich denke, dass es funktionieren soll. Der Benutzer klickt auf den Seitenleistenlink in show.html.erb
wobei /dash
so konfiguriert ist, dass es an Benutzer # in der Datei config/routes.rb
wie folgt weitergeleitet wird:
Und dann wird die Aktion show
in users_controller.rb
controller:
Wo show.js.erb
ausgeführt wird. Meine show.js.erb
-Datei hat diese eine Zeile:
Und das soll das #ajax div in meinem show.html.erb
:
Das app/views/projects/index.html.rb
nimmt @projekte auf und gibt eine Liste, wie folgt:
Offensichtlich mache ich etwas falsch, weil das nicht funktioniert. Was mache ich falsch? Gibt es Code, den ich anderswo ändern muss? Ich bin auf Rails 3.2.13, also sollten die Zeilen //=jquery
und //=jquery_ujs
unter app/assets/javascripts/application.js
die notwendige jQuery- und AJAX-Funktionalität importiert haben.
Das Problem ist, dass Sie in Ihrer show.js.erb
-Datei versuchen, eine partielle Darstellung zu machen, aber Sie übergeben sie eine Datei, die keine partielle Datei ist. Teildateien beginnen mit einem Unterstrich _
.
Um zu vermeiden, dass Code dupliziert wird, würde ich Folgendes tun:
%Vor% Außerdem sollten Sie match
nicht in Ihren Routen verwenden, da Sie Ihre Routen nie so benötigen, dass sie sowohl von GET- als auch von POST-Methoden erreichbar sind. Versuchen Sie also, get
anstelle von match
zu verwenden.
Tags und Links ruby-on-rails-3 javascript ruby-on-rails ajax