Hola a todos, estoy siguiendo un PDF[1] sugerido en esta lista. He
llegado a
la sección en la que se explica el uso de campos HIDDEN para usar los
vervos
PUT y DELETE
Aquà dejo la parte en la que me ha entrado la duda:
:::::::::::::::::::::::::::::::::::::::::::::::::: Resful_rails_es.pdf
(pág
14) :::::::::::::::::::::::::::::::::::::::::::::
Obsérverse que el método usado en los enlaces tanto para mostrar como
para borrar un proyecto es pro ject path:
l i n k _ t o " S h o w " , p r o j e c t _ p a t h ( p r o j e c t )
l i n k _ t o " D e s t r o y " , p r o j e c t _ p a t h ( p r o j e c
t )
, : m e t h o d = > : d e l e t e
La única diferencia es que el enlace a destroy utiliza el parámetro
:method
para especificar el método HTTP a usar (en este caso :delete). Debido a
que
el
navegador no soporta el verbo DELETE, Rails generará el siguiente
fragmento
de código Javascript que se ejecutará al hacer clic en el enlace:
l i n k _ t o " D e s t r o y " , p r o j e c t _ p a t h ( p r o j e c
t )
, : m e t h o d = > : d e l e t e
= >
< a h r e f = " / p r o j e c t s / 1 "
o n c l i c k = " v a r f = d o c u m e n t . c r e a t e E l e m e n t
( ’
f o r m ’ ) ;
f . s t y l e . d i s p l a y = ’ n o n e ’ ; t h i s . p a r e n t N o
d e
. a p p e n d C h i l d ( f ) ;
f . m e t h o d = ’ P O S T ’ ; f . a c t i o n = t h i s . h r e f ;
v a r m = d o c u m e n t . c r e a t e E l e m e n t ( ’ i n p u t ’ )
;
m . s e t A t t r i b u t e ( ’ t y p e ’ , ’ h i d d e n ’ ) ;
m . s e t A t t r i b u t e ( ’ n a m e ’ , ’ _ m e t h o d ’ ) ;
m . s e t A t t r i b u t e ( ’ v a l u e ’ , ’ d e l e t e ’ ) ;
f . a p p e n d C h i l d ( m ) ;
f . s u b m i t ( ) ;
r e t u r n f a l s e ; " > D e s t r o y < / a >
Este pequeño script crea un formulario al vuelo y garantiza que se envÃa
el método DELETE en el campo oculto method. Nuevamente, el dispatcher
de Rails comprueba el contenido de este campo y sabe que la petición se
debe
encaminar hacia la acción destroy.
:::::::::::::::::::::::::::::::::::::::::::::::::: Resful_rails_es.pdf
(pág
14) :::::::::::::::::::::::::::::::::::::::::::::
Mi duda es ¿Que pasa si el usuario tiene el javascript deshabilitado? YO
LO
Sé Lo he hecho y lo que pasa es que entiende el
link “destroy” como “show”. Con el javascript deshabilitado en mi
navegador.
No tengo estadÃsticas de si el porcentaje de usuario con javascript
deshabilitado es relevante. De todas formas me gustarÃa saber si esto se
puede hacer de otra forma
Gracias