admon
September 26, 2008, 12:06pm
1
Hola lista,
Tengo un problema con el layout. Os comento.
Para mi aplicacion tengo un layout, que desactivo para la pagina de
login. Es decir:
def login
session[:current_date] = Date.today
@current_date = session[:current_date]
session[:user_id] = nil
$proj = 0
if request.post?
…
end
render(:layout => false)
end
Cuando entro en la aplicacion, como no estoy logueado, el sistema me
redirecciona a la pagina login, pero me la intenta mostrar con el
layout:
Processing UsersController#login (for 127.0.0.1 at 2008-09-26 11:46:18)
[GET]
Session ID: c71adb84bc882483c10cf677ea84996e
Parameters: {“action”=>“login”, “controller”=>“users”}
Rendering template within layouts/layout
Rendering users/login
Entonces es cuando me da un error porque en el layout hago uso de
variables que aun no estan inicializadas (tales como session[:user_id]).
Lo mas descabellado del tema es que ayer, si haber modificado el
codigo, no me daba problemas.
¿PodrÃa alguien echarme una mano? Gracias
admon
September 26, 2008, 12:46pm
2
Una opcion es tener un layout distinto para esa accion.
A veces se pueden compartir cosas como el elemento HEAD que sacas a
shared/_head etc.
admon
September 26, 2008, 1:42pm
3
He creado un layout nuevo, para la pagina de inicio. Ahora si me lleva
a la pagina de login, pero cada vez que le doy al boton de login, me
redirige otra vez a la pagina de login. Os muestra el log:
Processing UsersController#login (for 127.0.0.1 at 2008-09-26 13:33:30)
[POST]
Session ID: c71adb84bc882483c10cf677ea84996e
Parameters: {“name”=>“PBJ000”, “commit”=>“Login”,
“authenticity_token”=>“c5375
31c30760b38646c56aec59f3ea9cd140a28”, “action”=>“login”,
“controller”=>“users”,
“password”=>“34058417”}
Rendering template within layouts/inicio
Rendering users/login
Completed in 0.00010 (10000 reqs/sec) | Rendering: 0.00000 (0%) | DB:
0.03100 (3
0999%) | 200 OK [http://localhost/users/login ]
Processing UsersController#login (for 127.0.0.1 at 2008-09-26 13:33:31)
[POST]
Session ID: c71adb84bc882483c10cf677ea84996e
Parameters: {“name”=>“PBJ000”, “commit”=>“Login”,
“authenticity_token”=>“c5375
31c30760b38646c56aec59f3ea9cd140a28”, “action”=>“login”,
“controller”=>“users”,
“password”=>“34058417”}
Rendering template within layouts/inicio
Rendering users/login
Completed in 0.00010 (10000 reqs/sec) | Rendering: 0.00000 (0%) | DB:
0.00000 (0
%) | 200 OK [http://localhost/users/login ]
Esta es la parte de codigo del metodo login en el controlador user que
hace que me deba de llevar a la pagina idex:
...
uri = session[:original_uri]
session[:original_uri] = nil
redirect_to(uri || { :action => “index” })
return
…
No tengo ni idea de que puede ser. Solo me queda probar en otro sistema
por si pudiera ser un capricho que se esta permitiendo el rails.
Xavier N. wrote:
Una opcion es tener un layout distinto para esa accion.
A veces se pueden compartir cosas como el elemento HEAD que sacas a
shared/_head etc.