[Ror-es] Actualizar varios DOM's con partials en una llamada ajax
lumen
Wed Feb 15 17:51:09 GMT 2006
On Wed, Feb 15, 2006 at 06:21:57PM +0100, Victor Jalencas wrote:
> Hola,
>
> si he entendido bien tu pregunta, tienes que usar link_to_remote, y
> como :action un método que solo haga el render_partial, sin layout ni nada.
Ya, eso va bien si sólo tengo que actualizar un div. Pero imagina esta
situación:
<div id=lista_productos>
<%= render_partial 'productos_de_cliente' %>
</div>
<div id=formulario_para_anadir_producto>
<%= form_remote_tag :action => 'anadir_producto', :id =>
'formulario_para_anadir_producto' ...%>
....
<%= end_form_tag %>
</div>
La función anadir_producto se encargará de validar el nuevo producto del
formulario.
Si no es válido, renderizará de nuevo el formulario con los errores en
el id 'formulario_para_anadir_producto'.
Pero si es correcto lo guardará en la base de datos y debe actualizar la
lista de de productos, que está en el id 'lista_productos' y a la vez
renderizar de nuevo el formulario "vacio" (para usar otra vez).
La actualización de los dos div se puede hacer si en lugar de html envio
javascript y lo interpreto en el cliente ( lo del :complete => evaluate_remote_response ).
Pero resulta que no puedo crear una función javascript con el html del
render_partial 'productos_de_cliente' (por ejemplo).
me explico bien?
>
> Victor
>
> lumen wrote:
> > Hola. Estoy descubriendo ajax con rails y tengo una duda.
> >
> > He visto los ejemplos típicos para la actualización de varios diffs. La
> > idea que pillo es que la respuesta del servidor a la llamada ajax sean
> > varias funciones javascript. La respuesta al llegar al cliente es
> > interpretada como javascript en lugar de ser renderizada como html.
> >
> > Así se pueden devolver varios update_element_function actualizando cada
> > uno un DOM diferente.
> >
> >
> > La pregunta es cómo darle al update_element_function un contenido más
> > complejo que texto, sino un render partial.
> >
> _______________________________________________
> Ror-es mailing list
>
>
>