Is it possible to have to have the root url configured so that the user
is directed to a different page depending if they are logged in or not
whilst also keeping the url the same?
E.g
If the user is logged in, I want www.example.com to show the Users#show
action
If the user is not logged in, I want www.example.com to the the
Sessions#new action
At the moment I have the root url configured to be the Users#show action
and I have a ‘login_required’ before filter on the Users#show action
which redirects the user to Sessions#new if the user is not logged in.
This works well but the URL is changed when the user is directed and so
all nonlogged in users see www.example.com/login as the url when they
come to the site. I want everybody to see www.example.com regardless of
whether they are logged in or not.
routes.rb
map.root :controller => ‘users’, :action => ‘show’
map.login ‘/login’, :controller => ‘sessions’, :action => ‘new’
Thanks
Hi Tim,
Your question was interesting.
Is it possible to have to have the root url configured so that the user
is directed to a different page depending if they are logged in or not
whilst also keeping the url the same?
E.g
If the user is logged in, I wantwww.example.comto show the Users#show
action
If the user is not logged in, I wantwww.example.comto the the
Sessions#new action
No, its not possible as far I know.
map.login ‘/login’, :controller => ‘sessions’, :action => ‘new’
Thanks
Posted viahttp://www.ruby-forum.com/.
All files under config directory could not access any methods or
variables like ‘session’. And it is must to have a different urls for
different actions rendered in the browser.
Still you want to do that?
Use same controller and same action but render a partial based on your
stuff needed.
Thanks,
Sadeesh Kumar Viswanathan.
Tim,
You might consider a common view with two different partials - one for
each case.
routes.rb:
map.index ‘/’,
:controller => ‘pages’,
:action => ‘welcome’,
:id => ‘1-welcome-page’
controllers/pages_controller.rb:
def welcome
@page = Page.find(params[:id])
respond_to do |format|
format.html # welcome.html.erb
format.xml { render :xml => @page }
end
end
views/pages/welcome.html.erb
Title:
<%=h @page.title %>
<% if logged_in? %>
<%= render :partial => ‘layouts/welcome_back’ %>
<% else %>
<%= render :partial => ‘layouts/please_login’ %>
<% end %>
Rick
Rick
On Nov 28, 1:45 am, Tim C. [email protected]