Saltar al contenido

Método link_to de Rails: OBTENER cuando debería ELIMINAR

Este post fue probado por nuestros especialistas para que tengas la garantía de la veracidad de este enunciado.

Solución:

También verifique que esto esté en su application.js:

//= require jquery
//= require jquery_ujs 

Aparentemente tenía jquery sin jquery_ujs y tenía el mismo problema hasta que lo agregué.

La mayoría de los navegadores en realidad no admiten el verbo DELETE, por lo que Rails lo falsifica modificando el HTML que genera. Rails tachuelas en un HTML5 attribute llamó data-method y lo establece en "delete". Entonces, cuando un usuario hace clic en el enlace, en realidad se emite como un GET solicitud, pero el data-method attribute permite algo de magia de Rails y significa que su código de enrutamiento debería reconocerlo como una solicitud de ELIMINACIÓN.

editar:

Puedes probarlo tú mismo en la consola. Correr bundle exec rails c para entrar en la consola, y mira el HTML que esto genera:

helper.link_to "delete", "foobar/delete", :method => 'delete'

El HTML debería verse así:

delete

Debes usar el siguiente código

<%= button_to "delete", @user_current, :method => "delete" %>

Resolverá el problema o agregará esta línea //= requiere jquery_ujs a application.js y usa:

 <%= link_to 'delete', user, :method => :delete, data: :confirm => "You sure?"  ,
                            :title => "Delete #user.name" %>

Puntuaciones y comentarios

Más adelante puedes encontrar las reseñas de otros creadores, tú todavía tienes la libertad de dejar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *