Is it possible to put an if/else statemnt, and change the map.root
under each condition? for ex–
if current_user
map.root :controller => ‘current_user’
else
map.root :controller => ‘home’
end
cuase apparenlty that doesn’t work, so is there an alternative way?
basically if the user is logged in, i dont want the homepage to be the
homepage anymore, but instead the user page.
NOTE:::: i can’t do a redirect_to in my home controller, because i
have multiple cases (current_user, current_admin, etc) and i can’t
have multiple redirects in an action.
so is there a way to change the homepage according to who’s logged in?
Thanks
Hi David,
Your conditional routing won’t work because routes.rb is evaluated on
startup not per request.
I don’t understand the rest of the question. You can’t redirect
multiple times per action but you can have multiple possible redirects
in an action as long as only one is executed - does that help?
/Ritchie
Hi,
During processing of request first it executes routes. so, it’s not
possible to add above type of conditional statement (authentication).
For conditional routing refer -
http://www.buildingwebapps.com/articles/7082-enhancing-conditional-routing-in-rails
Ritchie,
you wrote “You can’t redirect
multiple times per action but you can have multiple possible redirects
in an action as long as only one is executed”
so how do i do that? An if/else statment doesn’t work in this case, is
there another way?
right, i understand…thats what i did
heres my code-
if current_user
redirect_to current_user_path
elseif current_admin
redirect_to current_admin_path
elseif current_secretary
redirect_to current_secretary_path
else
@greeting = “Hello Guest”
end
but its saying that i have multiple rediects per action, and i do, but
apparently rails thinks all of them will get executed? thats my
error :-\
any suggestions? thanks
On May 5, 1:08 am, David Z. [email protected] wrote:
Ritchie,
you wrote “You can’t redirect
multiple times per action but you can have multiple possible redirects
in an action as long as only one is executed”
so how do i do that? An if/else statment doesn’t work in this case, is
there another way?
Well in a nutshell
if current_user
redirect_to user_path(current_user)
else
redirect_to home_path
end
(assuming the existance of various named routes)
Show us what you’ve attempted.
Fred