2013-10-25 10 views
29
löschen

Hier ist meine Schienen link_toSchienen bestätigen, bevor

<%= link_to 'Delete',url_for(action: :delete,id: @user.id),data: {confirm: "Are you sure?"} %> 

ich das obige Verfahren versucht, aber es wird direkt ohne Warnmeldung zu löschen. Was ich falsch gemacht habe. Kann jemand es korrigieren?

+0

ist jquery.js in Ihrer App enthalten? – Debadatt

+1

@Debadatt Ja enthalten – overflow

Antwort

0

Überprüfen Sie den folgenden Link:

<%= link_to 'Delete',url_for(action: :delete,id: @user.id), confirm: "Are you sure?" %> 
45

Versuchen Sie, diese

<%= link_to 'Delete',url_for(action: :delete,id: @user.id),method: :delete, data: {confirm: "Are you sure?"} %> 
+1

Für was es wert ist, ist der 'Daten'-Hash die einzige Option in den hier bereitgestellten Lösungen, die für mich funktionierte. Rails 4.1.2, Ruby 2.1.2p95, jquery-rails 3.1.1. In anderen Apps habe ich die 'confirm'-Option außerhalb des' data'-Hashes als Argument für link_to benutzt und es hat total funktioniert. Was gibt? –

+1

Das hat mich für eine Weile in Rails 4 ratlos gemacht.1, ohne die Bestätigung in den Datenhash zu setzen, wird das Attribut als "Bestätigen" anstatt der richtigen "Datenbestätigung" gerendert. –

+0

Haben sie dies in Rails 4 zur Datenbestätigung geändert? –

1
  1. Ich denke, sollten Sie verwenden: Methode Option

    <%= link_to 'Delete',url_for(action: :delete,id: @user.id), method: :delete, confirm: "Are you sure?" %>

  2. Es ist wahrscheinlich besser nutzen Taste (und Form) für diese Art von Aktion

+1

Versucht, aber funktioniert nicht, wenn ich inspiziere, kann ich 'data-confirm =" Sind Sie sicher? "' Und 'data-method =" delete "' – overflow

+0

Sind irgendwelche Fehler in der JS-Konsole? –

+0

Keine Fehler in der Konsole auch – overflow

1
link_to('Delete', {controller: :controller_name, id: id, action: :action_name}, confirm: "Are you sure you want to delete this?", method: :delete) 
0

Stellen Sie sicher, dass sowohl die jQuery-Bibliothek und die jQuery-Treiber haben für Rails enthalten. Der Edelstein jquery-rails wird sich in den späteren Versionen von Rails um beides kümmern, von dem, was ich weiß.

Auch für bessere Chancen der Kompatibilität mit zukünftigen Versionen des jQuery-Treibers, bewegen Sie die :confirm Option außerhalb :data und lassen Sie die jquery-rails Edelstein entscheiden, was damit zu tun ist.

10

Antwort für Schienen 4.1.8 (Frage Version nicht enthalten)

und Standard-Ressource (auch nicht angegeben)

  1. //= jquery_ujs muss in application.js enthalten sein (möglicherweise fehlt)
  2. url ist user_path(@user)
  3. angeben :method => :delete (fehlt)
  4. Bestätigungsnachricht innerhalb :data (war gut)
  5. Methode zerstören in Steuerung (nicht löschen)

= link_to t (: Löschen), user_path (@user): method =>: Löschen: class = > "BTN-Gefahr btn": data => {: confirm => t (: are_you_sure)}

die uRL in der Frage scheint eine GET, sondern als eine DELETE-Methode zu erstellen. Dies funktioniert möglicherweise, wenn: Methode angegeben wurde. Es ist bedauerlich, dass es dafür keinen separaten URL-Helfer gibt.

+0

// = jquery_ujs hinzugefügt nach // = jquery und es funktioniert jetzt wie Charme –

Verwandte Themen