Foros del Web » Programando para Internet » Ruby »

button_to vs link_to

Estas en el tema de button_to vs link_to en el foro de Ruby en Foros del Web. me he documentoado y veo q existen dos helpers button_to y link_to la diferencia entre los dos esta clara, y tb creo q tengo se ...
  #1 (permalink)  
Antiguo 13/10/2006, 09:02
 
Fecha de Ingreso: agosto-2006
Mensajes: 316
Antigüedad: 18 años, 3 meses
Puntos: 0
button_to vs link_to

me he documentoado y veo q existen dos helpers button_to y link_to
la diferencia entre los dos esta clara, y tb creo q tengo se para que se tiene que utilizar cada cosa, pero mi ingles no es muy completo y no termino de entender lpq en algunos casos es mejor utilizar button_to .

Código:
The problem is that the link_to( ) helper
generates an HTML
<
a href=...
>
tag. When you click on the corresponding link, your browser generates an HTTP GET request to the server. And HTTP GET requests are not supposed to change the state of anything on the server they're only to be used to fetch information.
We previously showed the use of :post => true
as one solution to this problem.
Rails provides a useful alternative: the button_to
( ) method also links a view back to the application, but it does so by generating an HTML form that contains just a single button. When the user clicks the button, an HTTP POST request is generated. And a POST request is just the ticket when we want to do something like add an item to a cart.
  #2 (permalink)  
Antiguo 13/10/2006, 17:39
 
Fecha de Ingreso: enero-2006
Mensajes: 48
Antigüedad: 18 años, 10 meses
Puntos: 0
link_to genera peticiones GET. Según el protocolo HTTP, las peticiones GET deben ser idempotentes. O lo que es lo mismo, si invocas la petición GET varias veces seguidas obtienes el mismo resultado. O, dicho de otro modo, las peticiones GET no deben ser destructivas, no modifican l estado de la aplicacaión.

Por eso, para las acciones de borrado o añadido de elementos, por ejemplo, no es conveniente usar link_to: estarías generando un enlace GET para una acción destructiva en tu app. *Podría* no pasar nada, pero estarías violando la semántica de la web. Y nunca sabes qué podrías romper: cuando Google lanzó su "Google Web Accelerator", una de las cosas que hacía este sistema era precargar todos los enlaces GET de una página automaticamente. Imagínate qu ele enseñas una página cargada de link_tos a acciones de borrado de elementos :)

Para estos casos, conviene usar una petición POST. Para ello, la llamada button_to generará un form y un botón automáticamente de forma sencilla y transparente.
__________________
------------------------------
http://www.sobrerailes.com
  #3 (permalink)  
Antiguo 14/10/2006, 03:15
 
Fecha de Ingreso: agosto-2006
Mensajes: 316
Antigüedad: 18 años, 3 meses
Puntos: 0
gracias otra vez,

la verdad es q tu ingles lo entiendo perfectamente.

NOta del Dia:
las peticiones GET deben ser idempotentes. O lo que es lo mismo, si invocas la petición GET varias veces seguidas obtienes el mismo resultado.
  #4 (permalink)  
Antiguo 21/10/2006, 08:22
 
Fecha de Ingreso: septiembre-2004
Mensajes: 56
Antigüedad: 20 años, 2 meses
Puntos: 0
<%= link_to "(delete)",
{:action => "delete", :id => receta.id},
:confirm => "¿Seguro que quieres borrar #{receta.titulo}?" %>

Utilizando un :confirm uno no tendria problema de que borrasemos muchas cosas
  #5 (permalink)  
Antiguo 23/10/2006, 00:59
 
Fecha de Ingreso: enero-2006
Mensajes: 48
Antigüedad: 18 años, 10 meses
Puntos: 0
Cita:
Iniciado por Inda Ver Mensaje
<%= link_to "(delete)",
{:action => "delete", :id => receta.id},
:confirm => "¿Seguro que quieres borrar #{receta.titulo}?" %>

Utilizando un :confirm uno no tendria problema de que borrasemos muchas cosas
Es una posibilidad. Pero fíjate que no solucionarías el problema de Google Web Accelerator, que no entiende Javascripts; se limita a encontrar un link y "precargarlo".
__________________
------------------------------
http://www.sobrerailes.com
  #6 (permalink)  
Antiguo 23/10/2006, 13:37
 
Fecha de Ingreso: septiembre-2004
Mensajes: 56
Antigüedad: 20 años, 2 meses
Puntos: 0
pero ese link no lo cargaria por que esta detras de un javascrip no?
  #7 (permalink)  
Antiguo 25/10/2006, 12:34
 
Fecha de Ingreso: enero-2006
Mensajes: 48
Antigüedad: 18 años, 10 meses
Puntos: 0
Cita:
Iniciado por Inda Ver Mensaje
pero ese link no lo cargaria por que esta detras de un javascrip no?
No tiene por qué no hacerlo, depende de lo astuto que sea. Por cierto, he visto que hay un plugin de Firefox, llamado Fasterfox que viene a hacer algo parecido: es capaz de buscar los enlaces de la página y abrirlos antes de que lo hagamos nosotros -para mejorar la velocidad de carga-.
__________________
------------------------------
http://www.sobrerailes.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:17.