Problema con un efecto AJAX usando link_to_remote

hola amigos, espero me ayuden urgente porque de verdad que ya no se que
hacer… les explico

En mi proyecto tengo un menu CSS y estaba usando el link_to y todo bien
pero
una vez terminado todo se me ocurrio agregarle un efecto en ajax con
link_to_remote entonces en mi layout coloqué <%=yield%> dentro de un div
de
la siguiente manera:

<%= yield %>

y en mis opciones de menu cambie los link_to por link_to_remote como me
lo
indican en la api.rubyonrails.org
Por ejemplo: <%=link_to_remote (“Cambiar Clave de Acceso”, :update =>
“contenido”, :url =>{:controller => “users”, :action => “cambio_clave”,
:id
=> @current_user.id.to_s})%>

La vista que me devuelve es la pagina y en la parte del

del layout
lo
actualiza pero de una manera que no me imaginaba, es decir, me vuelve a
montar la pagina completa con layout y todo.

Luego en el metodo cambio_clave del controller users hice lo siguiente:
def cambio_clave
@user = User.find(@current_user.id)
render :layout => false
end
Y alli se me solucionó el problema de que no se me muestre la pagina dos
veces, una montada en la otra.
Pero me surgió otro problema ==> No me muestra el formulario de la vista
cambio_clave.html.erb (app/views/users/cambio_clave.html.erb)

Este formulario muestra el password_field :password y el password_field
:password_confirmation

Que esta pasando alli? no veo cual es el problema

Muchas Gracias

sera que me puedes dar una mano? por favor gracias

2008/7/30 Manuel P. [email protected]

Manuel, si tienes el codigo así tal cual lo pusiste en el correo pues tu
problema es el siguiente le estas diciendo a rails que te actulice el
div
“contenido” con lo que retorne el metodo
“cambio_clave” en el controlador.

<%=link_to_remote (“Cambiar Clave de Acceso”, :update => “contenido”,
:url
=>{:controller => “users”, :action => “cambio_clave”, :id =>
@current_user.id.to_s})%>

Ahora bien el metodo “cambio_clave” en el controlador no está retornando
retornando nada,
es decir, hiciste bien en desactivar el layout para el render así
solucionas
el problema que no
muestre toda la pagina en el div pero te falta decirle que es lo que va
a
renderizar.

Para ello lo que te recomiendo es que pongas la vista
“cambio_clave.html.erb” como un partial
para que lo renderices desde tu metodo de la siguiente manera:

def cambio_clave
@user = User.find(@current_user.id)
render :partial => ‘cambio_clave’, :layout => false
end

Espero te sirva de ayuda.

Saludos,

On Sat, Aug 2, 2008 at 3:09 PM, Manuel P.
<[email protected]

wrote:

alberto muchas gracias me sirvio… pero ahora me surge otro problema: el
formulario de la vista no se me muestra, es decir, no se muestran los campos

Manuel para poder ayudarte necesito saber como estas escribiendo el
codigo,
por lo pronto verifica que
estes guardando la vista como un partial y al momento de renderizarlo lo
hagas bien.

Saludos,

alberto muchas gracias me sirvio… pero ahora me surge otro problema:
el
formulario de la vista no se me muestra, es decir, no se muestran los
campos

2008/8/1 Alberto Q. [email protected]

ok en el link tengo esto:
<%=link_to_remote ‘Cambiar Clave de Acceso’, :update => ‘contenido’,
:url
=>{:controller => ‘users’, :action => ‘cambio_clave’, :id =>
@current_user.id.to_s}%>

en el controlador de users tengo el metodo cambio_clave asi:
def cambio_clave
@user = User.find(@current_user.id)
render :action => ‘cambio_clave’, :layout => false
end

y en app/views/users/cambio_clave.html.erb mi pagina o la vista que
muestra
los campos clave y su confirmación aqui esta el codigo:

Cambiar Clave de Acceso

<%= flash[:notice] %>

<% form_for (@user) do |f|%> <% end%>
<%= error_messages_for :user, :header_message => "

Han ocurrido Errores antes de Registrar la Información:

", :message => "Los errores son los siguientes:" %>
(*)Todos los Campos son Obligatorios
Login del Usuario: <%[email protected]%>
Clave de Acceso: <%= f.password_field :password, :size => 10, :maxlength => 40%> (Minimo 6 caracteres)
Confirmar Clave: <%= f.password_field :password_confirmation, :size => 10, :maxlength => 40 %> (Minimo 6 caracteres)
<%= f.hidden_field :login%> <%=f.hidden_field :status%> <%=f.hidden_field :grupousuario_id%> <%=f.hidden_field :denusu%> <%=f.hidden_field :email%>
<%= f.submit "Guardar" %>

te cuento que cuando hago clic la pagina me muestra aolo esto:

Cambiar Clave de Acceso

<%= flash[:notice] %>

cuando empieza el <%from_for %> no hace nada, queda en blanco

Espero me ayudes amigo muchas gracias de verdad

El 2 de agosto de 2008 15:14, Alberto
Quintero[email protected]escribió:

<%= error_messages_for :user, :header_message => "

Han ocurrido Errores antes de Registrar la Información:

", :message => "Los errores son los siguientes:" %>
(*)Todos los Campos son Obligatorios
Login del Usuario: <%[email protected]%>

alberto disculpa que te quite tiempo pero sigo sin ver el formulario no
estiendo porque…
Referente a lo del id tienes razon esta de mas colocarlo, ya lo quité.
Hice tambien lo que me dijiste en app/views/users/cambio_clave.html.erb
hice
lo siguiente:

Cambiar Clave de Acceso

<%= flash[:notice] %>

<%render :partial => "formcambioclave"%>

y el partial lo guarde como lo indica la documentacion de rails
“_formcambioclave.html.erb”

pero cuando hago clic en el link_to_remote me muestra solo la vista
“cambio_clave.html.erb” y el partial que contiene el formulario no me lo
muestra… ya no se que esta pasando alli

2008/8/2 Alberto Q. [email protected]

<%= error_messages_for :user, :header_message => "

Han ocurrido Errores antes de Registrar la Información:

", :message => "Los errores son los siguientes:" %>
(*)Todos los Campos son Obligatorios
Login del Usuario: <%[email protected]%>

hola otra vez alberto…
en el partial _formcalbioclave.html.erb tengo el formulario como te
dije,
este es el codigo:

<%form_tag ‘cambio_clave’ do -%>

Clave de Acceso: <%=password_field_tag 'password', nil, :size => 10, :maxlength => 40%> (Minimo 6 caracteres) Confirmar Clave: <%=password_field_tag 'password_confirmation', nil, :size => 10, :maxlength => 40 %> (Minimo 6 caracteres) <%= submit_tag "Guardar" %> <%end -%>

entonces hice una prueba quitando <%form_tag ‘cambio_clave’ do -%> con
su
<%end -%> y ahora en la vista si veo los campos password y confirmacion
de
password y el boton submit. Por supuesto al hacer clic en el boton no se
hace nada…
estuve revisando la documentacion y te pregunto: será que tengo que usar
el
form_remote_tag?
aunque estuve leyendo y no creo pero te pregunto por no dejar

Muchas gracias por tu ayuda

El 3 de agosto de 2008 8:48, Manuel
Pernalete[email protected]
escribió:

On Sat, Aug 2, 2008 at 3:35 PM, Manuel P.
<[email protected]

wrote:

Bueno Manuel la verdad no veo el porque usas como parametro :id =>
@current_user.id.to_s
si luego en el metodo estas llamando de nuevo al objeto @current_user
para
saber el id.

<td colspan="2"><%= error_messages_for :user, :header_message => "<h2
<td width="30%">Login del Usuario:</td>
    <td width="5%"></td>
        <%=f.hidden_field :grupousuario_id%>

cuando empieza el <%from_for %> no hace nada, queda en blanco

Mi proposicion en un principio fue que usaras un partial; un partial es
un
archivo que contiene un trozo
de una vista, es decir podrias tener solo la parte del formulario. El
partial debe guardarse con un underscore
al comienzo, ejemplo: _cambioClaveForm.html.erb

Imagino que estas usando los metodos generados por el scaffold, pero yo
en
lo personal prefiero escribir mis
metodos para updatear un registro basta con un
@registro.update_attributes(
… )

Y bueno a decir verdad al codigo que posteaste no le veo error pero te
recomienco que busques la doc de
form_tag y no uses el mismo objeto que estas inicializando en el
controlador
pues si estoy en lo cierto eso
hará que se cargen los values que ya tu objeto tiene y creo que no es lo
que
quieres hacer.

Espero te sirva de algo, si quieres ayuda con lo del partial dejame
saber y
te explico.

Saludos,

de verdad ya tire la toalla… no se porque no se muestra los campos del
formulario!
Por favor alguien me puede echar una mano en esto?

El 3 de agosto de 2008 9:09, Manuel
Pernalete[email protected]
escribió:

Mi Universo me Hubieses llamado y te Resuelvo esta sencillo esto…
mañana te envio el codigo a tu Email…

2008/8/4 Manuel P. [email protected]:

de verdad ya tire la toalla… no se porque no se muestra los campos del
formulario!
Por favor alguien me puede echar una mano en esto?

¿Qué te dice el Firebug de la petición Ajax?


Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o simplelogica.net
Recuerda comer mucha fruta y verdura.