Es javascript necesario con REST

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é :slight_smile: 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

[1] http://www.b-simple.de/download/restful_rails_es.pdf

On Jan 10, 2008 1:32 PM, Andrés gutiérrez [email protected] wrote:

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 )
, : m e t h o d = > : d e l e t e
m . s e t A t t r i b u t e ( ’ n a m e ’ , ’ _ m e t h o d ’ ) ;
:::::::::::::::::::::::::::::::::::::::::::::::::: Resful_rails_es.pdf (pág
14) :::::::::::::::::::::::::::::::::::::::::::::

Mi duda es ¿Que pasa si el usuario tiene el javascript deshabilitado? YO LO
:slight_smile: Lo he hecho y lo que pasa es que entiende el
link “destroy” como “show”. Con el javascript deshabilitado en mi navegador.

Quien mejor para explicar esto que Ryan con un railcast:

http://railscasts.com/episodes/77

Enjoy!

Una duda. ¿El railcast de Ryan es para Rails 2.0.2 o también para Rails
1.2?

El día 10/01/08, Emilio T. [email protected] escribió:

On Jan 10, 2008 10:01 AM, Andrés gutiérrez [email protected] wrote:

Una duda. ¿El railcast de Ryan es para Rails 2.0.2 o también para Rails 1.2
?

El screencast actual está diseñado para Rails 1.2, pero todo
deberíafuncionar igual (o casi igual) en Rails 2.0, y quienes lo hayan
comprado después de Noviembre o algo así reciben la versión para 2.0
gratis.

Vale. Yo tengo Rails 1.2.3 y no consigo que me salga la versión
alternativa
de destroy cuando está deshabilitado el javascript

Os dejo aquí el código que he tocado según lo que sugiere railcast [1]

[1] http://pastie.caboo.se/137753

El día 10/01/08, Federico B. [email protected] escribió:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs