rails method link_to delete def ruby-on-rails link-to form-helpers ruby-on-rails-3

ruby-on-rails - link_to - method delete rails



link_to delete url no funciona (7)

Tengo el siguiente enlace para eliminar la url en mi aplicación

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

No parece estar funcionando. Cuando hago clic en esta URL, solo me lleva a la ruta del programa. Puede alguien decirme cómo solucionarlo. Gracias.


¿Estás usando jQuery? Si es así, creo que el problema podría ser que esté utilizando jQuery sin el archivo rails.js actualizado.

Descargue rails.js aquí: https://github.com/rails/jquery-ujs/raw/master/src/rails.js Colóquelo en su directorio javascripts, sobrescribiendo rails.js que viene por defecto con rails.

Agrega una línea de inclusión de javascript para incluirla.

<%= javascript_include_tag "rails" %>

Ponga esto después de su etiqueta de inclusión Jquery. Probablemente también querrá descartar los valores predeterminados de JavaScript si no planea usar un prototipo.

Incluí jQuery UI en mi aplicación, encontré que eliminar ahora funciona como se muestra, pero después de hacer el problema resuelto arriba.


Asegúrate de tener activado el script java. De lo contrario :method => :delete actúa tal como se muestra en Rails.


Asegúrese de que estas líneas aparezcan en application.js :

//= require jquery //= require jquery_ujs


Deberías usar

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


Para que link_to funcione con el método de delete , Rails necesita el adaptador de scripts discreto para jQuery .

  • Asegúrese de que su Gemfile tiene

    gem ''jquery-rails''

  • Asegúrese de que app / asset / javascripts / application.js tenga

    //= require jquery
    //= require jquery_ujs

  • Asegúrese de que su aplicación / views / layouts / application.html.erb tiene

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

    dentro de la etiqueta de la head . Elimine la ''data-turbolinks-track'' => true si no planea usar Turbolinks.


Puedes probar con ''método de datos'' en lugar de: método.

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

Puede verificar en jquery_ujs.js el siguiente código:

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


Si está utilizando un enrutamiento reparador para los blogs, lo siguiente debería funcionar:

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