2010-12-12 4 views
20

Ho il seguente link_to cancellare URL nella mia applink_to cancellare URL non funziona

<%=link_to "Delete",blog_path(@blog.id), :method => :delete, :class => "delete", :confirm => "Are you sure ?"%> 

Non sembra di essere working.When clicco questo URL, appena mi serve per lo spettacolo path.Can qualcuno per favore dimmi come risolvere questo problema. Grazie.

+0

Qual è il percorso (routes.rb) per i blog? – aceofspades

+0

prova il tipo 'rake routes' e mostra l'output ... – wizztjh

risposta

5

Assicurarsi di avere lo script java attivato. Altrimenti :method => :delete si comporta proprio come mostrato in Rails.

+0

grazie per la risposta.è javascript è già attivo. – felix

+1

quindi dovresti verificare di aver caricato rails.js, e nessun errore javascript sulla pagina. – iain

+2

@Felix: se non vedi "Sei sicuro?" quando fai clic su questo link, qualcosa con js è sbagliato. – klew

4

Se stai usando il routing riposante per i blog, quindi il seguente dovrebbe funzionare:

<%= link_to "Delete", @blog, :method => :delete, :confirm => "Are you sure ?"%> 
19

Si sta utilizzando jQuery? Se è così, penso che il problema potrebbe essere che stai usando jQuery senza il file rails.js aggiornato.

Scarica rails.js qui: https://github.com/rails/jquery-ujs/raw/master/src/rails.js cadere nella directory JavaScript, sovrascrivendo i rails.js che viene fornito di default con le rotaie.

Aggiungere una riga include javascript per includerla.

<%= javascript_include_tag "rails" %> 

Metti questo dopo il tag di inclusione Jquery. Probabilmente vorresti anche disabilitare le impostazioni javascript se non prevedi di utilizzare il prototipo.

Ho incluso l'interfaccia utente di jQuery nella mia applicazione, ho trovato che l'eliminazione ora funziona come mostra, ma dopo aver effettuato sopra il problema risolto.

+0

Grazie per la risposta Sean. Era un errore javascript. – felix

+0

@felix hey se pensi che questa risposta sia stata rock, pensi di poterla collegare con una risposta accettata? =) thxxxx –

4

Puoi provare con "metodo dati" anziché: metodo.

<%=link_to "Delete",blog_path(@blog.id), 'data-method' => :delete, :class => "delete", :confirm => "Are you sure ?"%> 

Puoi controllare jquery_ujs.js il seguente pezzo di codice:

// Handles "data-method" on links such as: 
// <a href="https://stackoverflow.com/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a> 
+0

Questo ha funzionato per me :) –

16

assicuratevi che queste righe appaiono in application.js:

//= require jquery 
//= require jquery_ujs 
0

si dovrebbe usare

<%=button_to "Delete",blog_path(@blog.id), :method => :delete, :class => "delete", :confirm => "Are you sure ?"%> 
2

In ordine per link_to per lavorare con il metodo delete, Rails ha bisogno dello unobtrusive scripting adapter for jQuery.

  • Assicurati che il tuo Gemfile ha

    gem 'jquery-rails'

  • Assicurarsi che app/attività/javascript/application.js ha

    //= require jquery
    //= require jquery_ujs

  • Assicurati che la tua app/viste/layout/application.html.erb ha

    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>

    all'interno del tag head. Rimuovere la sezione 'data-turbolinks-track' => true se non si prevede di utilizzare Turbolinks.