[Ror-es] Actualizar varios DOM's con partials en una llamada ajax
lumen
Wed Feb 22 20:59:25 GMT 2006
On Thu, Feb 16, 2006 at 01:25:36PM +0100, Joshua Sierles wrote:
> Lumen,
>
> Has probado plantillas RJS? Estan en Edge Rails, y tambien hay un
> plugin para Rails 1.0: http://www.codyfauser.com/articles/2005/12/02/
> rails-rjs-templates-plugin
parece muy potente lo del rjs.
Al final lo he solucionado de la siguiente manera (lo dejo aquí por si a
alguien le sirve):
En la vista que va a tener que ser actualizada en varios sitios:
<div id=lista_personas>
render_partial 'lista_personas'....
</div>
<div id=nueva_persona>
# le devolveremos javascript, no html directamente, por lo que el
# fomulario debe declarar :complete => evaluate_remote_response
<%= render_partial "formulario_persona", Persona.new %>
</div>
En el controlador
def anadir_persona
@persona = Persona.new( params....).
#código para añadir la persona
# Lo que devulva la función debe ser púramente javascript, no debemos
# incluir el layout.
render :layout => false
end
Y finalmente en la de la función anadir_persona:
<% if @persona.errors.empty? %>
<%=
# añadimos la nueva persona al final de la lista de personas.
update_element_function(
"lista_personas",
{
:action => :update,
:position => :bottom,
:content => render_partial(
'persona',
@persona
)
}
)
%>
<% end %>
<%=
# actualizamos el formulario. Si no ha validado se mostrarán su
# errores. Si es válido se pintará uno "vacio".
update_element_function(
"nueva_persona",
{
:content => render_partial(
"formulario_persona",
@persona.errors.emtpy? Persona.new : @persona
}
)
%>
Si teneis algún comentario espero que lo hagais.
>
> Permite crear una plantilla en el servidor, en ruby, para ejecutar
> javascript en el cliente, y permite utilizar sintaxis render, efectos
> visuales, etc.
>
> Joshua
>
> On Feb 15, 2006, at 6:51 PM, lumen wrote:
>
> >
>
> _______________________________________________
> Ror-es mailing list
>
>
>