Frage

Ich habe nur das Spiel mit Rails 3 Beta und bemerkte, dass link_to_function ist jetzt weg. Ich nehme an, es ist eine alternative Methode zum gleichen Ergebnis (Onclick-Ereignis?) Zu erreichen, aber ich frage mich, ob es ein Rails-3'y Weg, es zu tun. TIA.

War es hilfreich?

Lösung

Rails 3 scheint mit Prototype-Helfer für einen weniger aufdringlichen / JS-Bibliothek agnostischen Ansatzes zu haben, beseitigt. Das Ziel ist es, alle Inline-Javascript von Rails erzeugt zu beseitigen. Prototype Helper erzeugt so ziemlich alle JavaScript.

Nun kann jeder der nicht entfernten Varianten von Helfern die richtige Javascript für einen Remote-Anruf in Ihrer JS-Bibliothek der Wahl erzeugen nur, indem das:. Remote => true Option

Leider ist dies nicht halten gilt für die x-Funktion Methoden. Für die Zeit gibt es wobei die Prototyp Legacy-Helfer , die nicht mehr zum Kernteil von Rails sind.

Sie können auch Call verwenden, wie definiert in ActionView :: Helpers :: PrototypeHelper :: JavascriptGenerator :: GeneratorMethods JavaScript-Code zu liefern: Onclick als html_option für link_to, aber das ist nicht gerade hübsch

.

Beispiele:

Rails < 3                      | Rails 3
link_to_remote "target", url   | link_to "target", url, :remote => true
form_remote_for @post          | form_for @post, :remote => true

etc ....

oder etwas in diesem Sinne. Ich habe Probleme beim offiziellen Dokumentation zu finden, meine Ansprüche zu sichern. So der Release Notes wird jetzt zu tun hat.

Bevor Sie es verwenden können, werden Sie die richtigen js Quelldateien enthalten müssen. Stellen Sie sicher, dass Sie laden prototype.js und rails.js, oder die Bibliothek und Treiber für JS Rahmen der Wahl an ihrem Platz.

Denken Sie daran, Rails 3 in der Beta ist jetzt. Aber das bedeutet nicht, es gemacht wird. Ich habe ehrlich gesagt keine Ahnung, wie link_to_function ersetzt. Es geht gegen das Ideal der unaufdringlichen Javascript.

Andere Tipps

Um meine eigene Frage zu beantworten, scheint dies funktioniert und ist ausreichend für das, was ich brauche:

link_to "name", nil, :onlick => "alert('Hello, world!')"

link_to_remote kann wie diese

erfolgen
  

link_to "Ziel",: remote => true

und eine Ajax-Post zu tun / erhalten Sie haben

  

link_to "Ziel", {: controller =>   Controller: action => Methode,}: remote => true

In Schienen 2 ist wie diese

war
  

link_to_remote "Ziel",: url =>   {: Controller => Controller: action =>   Verfahren,}: Remote   => True

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top