Forum: Rails-ES Diferencias entre redirect_to y render

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
72eaa24da031e3c4931809f27838dabb?d=identicon&s=25 Ricardo Pérez (Guest)
on 2007-01-08 19:04
Saludos a todos:

Soy un recién llegado Rails, y lo primero que he hecho ha sido comprarme
el libro de los programadores pragmáticos (el "Agile Web Development
with Rails, 2ª ed"), y mirando uno de los ejemplos veo el siguiente
trozo de código:

def save_after_edit
  order = Order.find(params[:id])
  if order.update_attributes(params[:order])
    redirect_to :action => :index
  else
    render :action => :edit
  end
end

La pregunta es: ¿por qué una vez usa redirect_to y luego usa render?
¿Qué diferencia hay entre las dos? Porque yo entiendo que las dos
instrucciones hacen lo mismo: mostrar la vista asociada a la acción que
se manda como parámetro. ¿Me equivoco? Probablemente :)

Gracias de antemano.
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2007-01-08 21:04
(Received via mailing list)
On 08/01/07, Ricardo Pérez <ruby-forum-incoming@andreas-s.net> wrote:
> Saludos a todos:
>
> La pregunta es: ¿por qué una vez usa redirect_to y luego usa render?
> ¿Qué diferencia hay entre las dos? Porque yo entiendo que las dos
> instrucciones hacen lo mismo: mostrar la vista asociada a la acción que
> se manda como parámetro. ¿Me equivoco? Probablemente :)
>
> Gracias de antemano.

Bueno, está bastante explícito en el nombre. 'Render' "dibuja" la
correspondiente plantilla, mientras que "redirect_to" redirige
(redirección HTTP) a otro método. En concreto hace una
redirecciónpermanente (cod. 302)

En la documentación de Rails (http://api.rubyonrails.org/) tienes
bastante bien explicados cada método, para dudas de este tipo.



--
Manuel
http://linkja.com * un agregador de tendencias
http://simplelogica.net
http://simplelogica.net/logicola
72eaa24da031e3c4931809f27838dabb?d=identicon&s=25 Ricardo Pérez (Guest)
on 2007-01-08 21:37
Manuel González Noriega wrote:
> On 08/01/07, Ricardo P�rez <ruby-forum-incoming@andreas-s.net> wrote:
>> Saludos a todos:
>>
>> La pregunta es: �por qu� una vez usa redirect_to y luego usa render?
>> �Qu� diferencia hay entre las dos? Porque yo entiendo que las dos
>> instrucciones hacen lo mismo: mostrar la vista asociada a la acci�n que
>> se manda como par�metro. �Me equivoco? Probablemente :)
>>
>> Gracias de antemano.
>
> Bueno, est� bastante expl�cito en el nombre. 'Render' "dibuja" la
> correspondiente plantilla, mientras que "redirect_to" redirige
> (redirecci�n HTTP) a otro m�todo. En concreto hace una
> redirecci�npermanente (cod. 302)
>
> En la documentaci�n de Rails (http://api.rubyonrails.org/) tienes
> bastante bien explicados cada m�todo, para dudas de este tipo.

Muchas gracias, Manuel.

Lo que me pregunto más bien es qué lleva al programador a usar, por
ejemplo, render en lugar de redirect_to (o viceversa...)
90ea347c45cdfbc1c5767dd6304d9c10?d=identicon&s=25 Borja =?ISO-8859-1?Q?Mart=EDn?= (Guest)
on 2007-01-08 21:53
(Received via mailing list)
imagina que tienes un formulario y quieres que cuando den a enviar los
datos, en caso de que se haya producido un error, se muestre el
formulario con los datos que había introducido junto a un mensaje
indicando cual era el problema. en este caso utilizarías el método
render, ya que así aprovecharías los datos enviados y pintarías la vista
en una sola petición.
por otro lado, a lo mejor quieres que cuando se hayan grabado
correctamente los datos del formulario, redirigir al usuario a otra
pantalla, así que utilizarías el método redirect_to donde se cargarán
los datos y vistas necesarios.

saludos

On Mon, 2007-01-08 at 21:37 +0100, Ricardo Pérez wrote:
> >
> Lo que me pregunto más bien es qué lleva al programador a usar, por
> ejemplo, render en lugar de redirect_to (o viceversa...)
>
--
/**
 * dagi3d v4 | http://dagi3d.net
 */
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2007-01-08 23:15
(Received via mailing list)
On 08/01/07, Borja Martín <borjam@dagi3d.net> wrote:
> imagina que tienes un formulario y quieres que cuando den a enviar los
> datos, en caso de que se haya producido un error, se muestre el

Como ha dicho Borja. Depende de si la utilidad de esa acción ya ha
concluido para ese ciclo de interacción (y rediriges) o bien, con los
datos disponibles, necesitas presentar determinada vista (y rendeas)



--
Manuel
http://linkja.com * un agregador de tendencias
http://simplelogica.net
http://simplelogica.net/logicola
72eaa24da031e3c4931809f27838dabb?d=identicon&s=25 Ricardo Pérez (Guest)
on 2007-01-08 23:34
Ya lo veo algo más claro. Aunque supongo que será cuestión de probar en
la práctica y ver la diferencia real. Muchas gracias a todos :)
This topic is locked and can not be replied to.