ruby-on-rails - rubyonrails - ruby on rails que es
los rieles confirman antes de borrar (6)
Creo que deberías usar: opción método
<%= link_to ''Delete'',url_for(action: :delete,id: @user.id), method: :delete, confirm: "Are you sure?" %>
Probablemente sea mejor usar el botón (y la forma) para este tipo de acción
Aquí están mis rieles link_to
<%= link_to ''Delete'',url_for(action: :delete,id: @user.id),data: {confirm: "Are you sure?"} %>
Probé el método anterior pero está eliminando directamente sin ningún mensaje de alerta. Que mal hice ¿Alguien puede corregirlo?
Asegúrese de tener incluidas la biblioteca jQuery y el controlador jQuery para Rails. La gema jquery-rails
se encargará de ambos en las versiones posteriores de Rails, por lo que sé.
Además, para tener mejores posibilidades de compatibilidad con versiones futuras del controlador jQuery, mueva la opción :confirm
fuera de :data
y deje que la gema jquery-rails
decida qué hacer con ella.
Mira el siguiente enlace:
<%= link_to ''Delete'',url_for(action: :delete,id: @user.id), confirm: "Are you sure?" %>
Prueba esto
<%= link_to ''Delete'',url_for(action: :delete,id: @user.id),method: :delete, data: {confirm: "Are you sure?"} %>
Respuesta para los rieles 4.1.8 (la pregunta no incluye la versión)
y recurso estándar (también no especificado)
-
//= jquery_ujs
debe estar incluido en application.js (posiblemente falte) - url es
user_path(@user)
- especificar
:method => :delete
(falta) - confirmar el mensaje dentro de
:data
(era bueno) - destruir el método en el controlador (no eliminar)
= link_to t (: eliminar), user_path (@user),: method =>: delete,: class => "btn btn-danger",: data => {: confirm => t (: are_you_sure)}
La url en la pregunta parece crear un GET, en lugar de un método DELETE. Esto puede funcionar si: se especificó el método. En mi humilde opinión, es desafortunado que no haya un asistente de url separado para esto.
link_to(''Delete'', {controller: :controller_name, id: id, action: :action_name}, confirm: "Are you sure you want to delete this?", method: :delete)