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 ?"%>