Forum: Rails-ES Problemas Para Cerrar una pagina y abrir otra.

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.
Juan M. (Guest)
on 2006-12-30 05:41
Saludos a la comunidad.

Quiero hacer una pregunta, tengo una pagina en mi /view la cual se llama
inicio.rhtml, el cual tiene algunos efectos de AJAX, el cuerpo de la
pagina es el siguiente.

<%= form_remote_tag(:url => {:action =>"entrar"},:update => "dato")%>
   Usuario<br>
   <%= text_field 'profesore', 'primer_nombre', 'size' =>20, 'name'
     =>'nombre'  %><br>
   <div id="dato"></div>
   <%= submit_tag "Login" %>
<%= end_form_tag%>

La pregunta es la siguiente luego de que el usuario hace su login,
quiero que aparezca otra pagina, lo que tengo en el controller es lo
siguiente.

def entrar
      cedula=params[:codigo]
      nombre=params[:nombre]

    @profesore = Profesore.find(:first,
    :conditions => "cedula = '#{cedula}' AND primer_nombre = '#
      {nombre}'")
     if @profesore == nil
         mensaje="<font color='red'>Usuario Inexistente</font>"
         render_text mensaje
       else
                   redirect_to(:controller =>"gaia",:action =>"dato")
     end
   end

Lo que pasa es lo siguiente que la otra página la cual se llama
dato.rhtml se sobrepone en la página, principal cuando quiero es que la
página inicio.rhtml se cierre y aparezca la otra pagina dato.rhtml sin
sobreponerse.

Gracia de Antemano.
Xavier N. (Guest)
on 2006-12-30 11:49
(Received via mailing list)
On Dec 30, 2006, at 4:41 AM, Juan M. wrote:

>                    redirect_to(:controller =>"gaia",:action =>"dato")
>      end
>    end
>
> Lo que pasa es lo siguiente que la otra página la cual se llama
> dato.rhtml se sobrepone en la página, principal cuando quiero es
> que la
> página inicio.rhtml se cierre y aparezca la otra pagina dato.rhtml sin
> sobreponerse.

Estas enviando una redireccion por HTTP a la peticion Ajax misma (que
como sabes es una peticion HTTP normal gestionada por el navegador
por lo bajini). Para conseguir la redireccion de la pagina como tal
usa JavaScript en la respuesta:

   render :update do |page|
     page.redirect_to :controller => "gaia", :action => "dato"
   end

-- fxn
Juan M. (Guest)
on 2006-12-30 19:02
> Estas enviando una redireccion por HTTP a la peticion Ajax misma (que
> como sabes es una peticion HTTP normal gestionada por el navegador
> por lo bajini). Para conseguir la redireccion de la pagina como tal
> usa JavaScript en la respuesta:
>
>    render :update do |page|
>      page.redirect_to :controller => "gaia", :action => "dato"
>    end
>
> -- fxn

Amigo lo que me escribiste funciona perfectamente ya lo probé y no me
sobrepone la pagina, lo que si no se es que antes de aparecer la otra
pagina sale como unas letras muy rápidas que dice mas o menos así “try
window.location href= ...” y después si sale la otra pagina

PD: te aviso cuando me funcione lo del text_field_with_auto_complete,
estoy trabajando en eso.

Gracias, JPMG
Juan M. (Guest)
on 2006-12-30 23:45
> Amigo lo que me escribiste funciona perfectamente ya lo probé y no me
> sobrepone la pagina, lo que si no se es que antes de aparecer la otra
> pagina sale como unas letras muy rápidas que dice mas o menos así “try
> window.location href= ...” y después si sale la otra pagina
>
> PD: te aviso cuando me funcione lo del text_field_with_auto_complete,
> estoy trabajando en eso.
>
> Gracias, JPMG

el erro que digo es el siguiente:
Try {window.location.href = “/gaia/prueba1”;}catch (e) {alert(‘RJS
error:\n\n’ +
e.toString());alert(‘window.location.href=\”/gaia/prueba1\”;’);throw e}
Xavier N. (Guest)
on 2006-12-31 02:41
(Received via mailing list)
On Dec 30, 2006, at 10:45 PM, Juan M. wrote:

>
> el erro que digo es el siguiente:
> Try {window.location.href = “/gaia/prueba1”;}catch (e) {alert(‘RJS
> error:\n\n’ +
> e.toString());alert(‘window.location.href=\”/gaia/prueba1
> \”;’);throw e}

Lo ves aparecer por un momento porque usas :update en la vista. No
uses :update, envia simplemente el form y responde con RJS segun el
caso:

   render :update do |page|
     if @profesore.nil?
       page.replace_html :dato, "<font color='red'>Usuario
Inexistente</font>"
     else
       page.redirect_to :controller => "gaia", :action => "dato"
   end

-- fxn
This topic is locked and can not be replied to.