link_to Syntax mit Schienen 3 (link_to_remote) und Basis JavaScript arbeiten nicht in einem 3 app Schienen?

StackOverflow https://stackoverflow.com/questions/2458841

Frage

ich frage mich, ob die Grund link_to Syntax vollständig in aktuellem rails3 Master defekt ist oder wenn ich hier etwas falsch Syntax tue.

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

sollte eigentlich eine Warnung auf Klick erzeugen. sehr einfach. nicht auf meinem rails3 Projekt arbeiten! (Auch keine Fehlerausgabe!) Irgendwelche Ideen?

für die allgemeine link_to Syntax i kein Beispiel gefunden, wo ich eine link_to_remote mit einer Bestätigung kombinieren konnte, Remote- und html-Klasse (siehe meinen Versuch unten)

= link_to "delete", {:action => "destroy", :remote => true, :method => :delete, :confirm => "#{a.title} wirklich Löschen?" }, :class => "trash"

auch die rails3 api mich nicht hier helfen: http: //rails3api.s3.amazonaws .com / index.html

Hilfe!

War es hilfreich?

Lösung 2

ok es sieht aus wie die neuen unaufdringliche Javascript Änderungen das Problem eingeführt. finden Sie im folgenden Beitrag für weitere Informationen, wenn Sie in ähnliche Probleme stoßen http: //blog.loopedstrange. com / bescheiden rubyist-Archiv / Schienen-3-UJS-and-csrf-Meta-Tags

 <%= csrf_meta_tag %>

Fest Dinge für mich.

Andere Tipps

Ich glaube, Ihr Problem hier ist, dass Sie auf den Link eingerichtet haben den Alarm zu zeigen, wenn sie geleckt wird, im Gegensatz zu, wenn es angeklickt wird. ;)

Wie bei link_to_remote hat es mit der Umstellung auf unaufdringliche Javascript geändert. Sie können darüber hier lesen: http : //blog.solnic.eu/2009/09/08/unobtrusive-javascript-helpers-in-rails-3.html

nil nicht funktioniert:

= link_to "name", nil, :onclick => "alert('Hello world!');"
=> <a href="/currentpath", onclick="alert('Hello world!');">name</a>

Sie sollten verwenden:

= link_to "name", "#", :onclick => "alert('Hello world!');"
=> <a href="#", onclick="alert('Hello world!');">name</a>

Falls keine der anderen Antworten hier für Sie arbeiten dann vielleicht dies dazu beitragen wird.

So ist die csrf_meta_tag Erklärung nicht genug für mich war, sollte jedoch in Ihrer Layout-Datei für Rails 3 ohnehin hinzugefügt werden. Bei mir stellte sich ein Konflikt mit jQuery erwiesen. Ich dies nur gesagt:

<script type="text/javascript">
  jQuery.noConflict();
</script>

nach dem Schienen-Skripte Tag in meinem Layout und der Konflikt zwischen Prototype und jQuery gelöst wurde. Schwupps war ich immer das Bestätigungsdialogfeld auf Löschen.

Diese Technik behob auch mein ursprüngliches Problem, wenn link_to zu versuchen, und einen Datensatz zu löschen. Mit link_to jedem Befehl zu zerstören schien für die Aufzeichnung der Show-Seite umgeleitet werden. Daher zog ich nach button_to auf einer anderen Lösung, die ich sehe basiert, aber ohne Bestätigung. Ich frage mich, ob es etwas tiefer sitzt Probleme mit jQuery und Prototype sind.

Das alles geschieht auf einer aktualisierten Rails 2.3.5-Anwendung, die in Ordnung zu sein schien arbeiten, ohne dass Prototype oder einschließen: defaults in meiner Layout-Datei.

Auf einer seitlichen Anmerkung habe ich diesen Anweisungen folgen:

http: // WebTech. union.rpi.edu/blog/2010/02/21/jquery-and-rails-3/

, um zu versuchen und Prototype verlieren alle zusammen für dieses Projekt und verwenden Sie die jQuery git Submodul für Rails 3 statt. Im Anschluss an diese Anweisungen nicht funktionierte und ich war immer noch ohne Bestätigungsdialoge mit button_to und der Show-Seite bei link_to verwenden. Nur dachte ich, es so speichern jemand versucht, dies die Mühe erwähnen würde.

Ein Wegthema Kommentar für eine Antwort oben, da ich noch nicht kommentieren: (

@robeastham: Ich dachte, ich würde einige Kommentare hinterlassen, die mit einigen der Fragen kann Ihnen helfen, encoutered haben.

Ich habe mit dem „zerstört Link zur Show Seite Umlenken statt der Indexseite“ -Ausgabe auch da von Active Mongoid Switching- und haben festgestellt, keine wirkliche Lösung (bereits Prototyp entfernt). eine Abhilfe jedoch, dass hiermit ausdrücklich funktioniert, ist sauber den Wieder direkter Pfad angeben mit: Standort respond_with:

respond_with @themodel, :location => themodels_url

Wie für eine Bestätigung Pop-up immer mit einem Knopf, könnten Sie tun:

button_to "Button Name", { :controller => "your/controller", :action => :action_name, :confirm => "Text for the pop-up"}, { :method => :<method name> }

z.

button_to "Click Here", { :controller => "home", :action -> :set_completed, :confirm => "Mark the item complete?" }, { :method => :put }

Das ist für mich gearbeitet:

<%= link_to "Recommend", recommend_user_path(@user), :remote => true %>

Überprüfen Sie, dass dies in Ihre Ansichten \ layout \ application.html.erb (oder gleichwertig):

<%= csrf_meta_tags %>

Beachten Sie, dass Rails v3.2.2 Verwendungen "Tags" nicht "tag"

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