Two root URLs


#1

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


#2

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.


#3

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. removed_email_address@domain.invalid