ruby - Enviando una solicitud DELETE desde Sinatra
rest httprequest (5)
Consulte también Llame a Sinatra eliminar ruta con jQuery para saber cómo hacer esto con jQuery y JSON en la parte delantera y Sinatra en la parte posterior.
Estoy tratando de desarrollar una aplicación RESTful Sinatra. Ahora, sé cómo responder a una solicitud de eliminación con algo como
delete ''/user/:id'' do |id|
#do something in the model
end
Lo que me interesa es cómo puedo ejecutar ese método. No puedo tener un enlace que haga un BORRAR en lugar de un GET, ¿verdad?
La única solución que encontré hasta ahora es enviar una solicitud DELETE a través de jQuery: ¿Cómo enviar una solicitud PUT / DELETE en jQuery?
Intenté buscar en diferentes proyectos RESTful Sinatra en github, pero mi conocimiento de Ruby es probablemente limitado para saber cómo lo están haciendo.
Otra forma es usar Curl:
curl -X DELETE http://host/user/1
Pienso que es como los rieles. Necesita definir un ''método'' de parámetros con el valor ''eliminar'' y agregarlo en su formulario.
Cuando POSTAS te formas con estos parámetros en particular, haces una solicitud DELETE en sinatra.
Me gusta :
<form action="/search" method="post">
<div style="margin:0;padding:0">
<input name="_method" type="hidden" value="delete" />
</div>
</form>
Es lo mismo con el método PUT
Ponga la siguiente línea en su código.
use Rack::MethodOverride
Le ayudará a interpretar los métodos de publicación con el parámetro " _method
" con el valor " delete
" como puesto. Entonces puedes escribir
delete ''/user/:id'' do |id|
%form{:action => "/note/delete/#{@note.id}", :method => "post"}
%input{:type => ''submit'', :name=> "_method", :value => ''delete'', :class => ''button''}
También puede activar la eliminación de la ruta con un botón así