respond_to te permite diferenciar acciones segun el formato que espera
el cliente/browser/usuario, según sea una llamada normal, un cliente
de web service, una llamada ajax, etc...  por ejemplo:

  respond_to do |format|
      format.html { redirect_to(person_list_url) }
      format.js { render :partial => 'status_update' }
      format.xml  { render :xml => @person.to_xml(:include => @company) }
  end

en este caso, si la llamada fue un get/post/put/delete comun y
silvestre, va a hacer el redirect_to(person_list_url); si la llamada
era ajax, va a renderear el partial 'status_update' (seguramente un
RJS); si la llamada espera xml, va a renderear @person.to_xml....

todo esto rails lo decide según el header HTTP Accept enviado por el cliente.

Podés ver más en
http://api.rubyonrails.org/classes/ActionController/MimeResponds/InstanceMethods.html#M000386
(de ahí afané el ejemplo)

saludos, Maximiliano Guzmán

On Thu, Apr 29, 2010 at 2:01 AM, Cristhian Boujon
<[email protected]> wrote:
> Buenas,
>
> No logro comprender que es lo que hace el respond_to en rails.
> Tengo esto:
> tengo un
> class StoreController
> def add_to_cart
>     begin
>       product = Product.find(params[:id])
>     rescue ActiveRecord::RecordNotFound
>       logger.error("Attempt to access invalid product #{params[:id]}")
>       redirect_to_index "invalid product"
>
>     else
>       @cart = find_cart
>       @cart.add_product(product)
>     end
>     respond_to { |format| format.js }
>   end
>
> y luego add_to_cart.rjs que hace uans llamadas a uno partial y otras yerbas.
> Leí la documentación pero la verdad que no me fue claro, que es lo que hace
> el respond_to y que es ese format.js?
>
> Saludos.
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a