Ich versuche, ein Teil in ein Jquery-Dialogfeld einzufügen. Das Dialogfeld funktioniert, aber keine Teil ..
Hier ist mein Code:
application.js
%Vor%meine Ansicht
%Vor%mein Teil in meiner Ansicht / _note.html.erb
%Vor%Wenn Sie eine Ahnung haben, wäre das sehr hilfreich! Danke
Fabien
Die Datei application.js
ist ein Platz für statisches JavaScript. Es wird nicht an ERB zur Verarbeitung bei jeder Anfrage übergeben, daher wird Ihre <%= code %>
niemals ausgeführt. Wenn Sie Ihren Browser auf /javascripts/application.js
richten, werden Sie sehen, wovon ich rede.
Stellen Sie sicher, dass Sie genau wissen, wie Anforderungen in Rails verarbeitet werden. Möglicherweise fehlen Ihnen hier einige Details. application.js
ist eine statische Datei, die im Verzeichnis /public/javascripts
vorhanden ist, sodass sie direkt von Ihrem Webserver bereitgestellt wird. Rails werden nicht einmal berührt, wenn der Browser sie holt. Es ist genau wie beim Erstellen einer neuen Rails-App und Sie müssen die /public/index.html
-Datei löschen, bevor Rails Ihr map.root
in der Datei routes.rb verarbeiten kann.
Sie haben ein paar verschiedene Optionen:
Hier ist eine ältere Railscast-Episode, aber es scheint fast genau das zu sein, wonach Sie suchen. Es verwendet einen Controller namens javascripts_controller
zum Erzeugen von dynamischen Javascripts. Dies ist kein sehr feinkörniger Ansatz.
In dieser Episode verwendet Ryan die Methode zum Hinzufügen von Feldern für ein verschachteltes Modell kann an Ihre Bedürfnisse angepasst werden. Ich habe diese Methode einige Male benutzt und es funktioniert sehr gut.
Sie können auch eine Aktion aufrufen, die den HTML-Code des Partials über AJax zurückgibt und das Ergebnis zu $(#notes).html(result)
verwendet. Eine schnelle Suche in rails jquery ajax
bietet ein paar Anleitungen, wie man das implementiert ( Hier ist eine, die vernünftig erscheint). Hier ist eine weitere Railscast-Episode, die sich mit jQuery und Rails 2 beschäftigt. Ich würde jRails an dieser Stelle nicht empfehlen, weil es fair ist Überholt, und wie die Episode erwähnt, vereitelt es irgendwie den Zweck, zu jQuery zu wechseln, da die Rails 2-Helfer aufdringliches JavaScript erzeugen.
Dies ist eine flexible Art, Dinge zu tun. Sie haben eine generische Gruppe von statischem JavaScript, die zum Aufrufen entfernter Methoden verwendet wird. In einzelnen Controller-Methoden können Sie respond_to diese Ajax-Aufrufe aufrufen und JavaScript mit dynamischen Daten, HTML oder JSON zurückgeben.
Die Methoden in jQuery, die für Ajax verwendet werden, sind in diesem Abschnitt von jQuery api aufgeführt. $.ajax
$.post
und $.get
sind die wichtigsten.
Für Ihr Beispiel wäre $.get
ein guter Ausgangspunkt. Hier ist ein Beispiel aus der api Dokumentation:
Hier ist ein Railscast, wie Rails 3 unauffälliges JavaScript zusammen mit benutzerdefinierten HTML5-Attributen behandelt. Sie können diesen Ansatz in Rails 2 nachahmen, aber die Standard-Hilfsmethoden generieren nicht die Attribute data-remote
, data-method
, data-disable-with
oder andere data-*
für Sie. Sie können in der jQuery-Version von Rails 3 ujs sehen, dass es das ist Meistens wie die vorhergehende Methode, die ich erwähnt habe, wo Controller-Methoden mit $.ajax
aufgerufen werden, und behandeln die Antwort unterschiedlich je nach dataType (standardmäßig 'script'.
Nachdem ich mir die Rails-Casts und die Dokumentation angeschaut habe, tue ich es am besten, indem ich mir die Beispiele aus der realen Welt anschaue und an das anpasse, was ich brauche. Also, wenn Sie die Ajax-Route (was Awgy vorgeschlagen) und wollen mehr Beispiele, dann ist hier ein Link neben InfectiouSoul Link (von der gleichen Website), dieser zeigt ein Beispiel für einen Dialog mit einer Ajax-Anfrage.
>Tags und Links ruby-on-rails-3 jquery ruby-on-rails