How to display a welcome page


#1

Wow, I can’t believe that after a few weeks of playing around with Rails
I
got stuck on something that seems like it should be really simple.

How do I display a default welcome page for visitors who are not logged
in
and send logged in users to the appropriate controller. I am using the
login_engine and the user_engine.

The two methods I have seen looking at sample code are to stick a
http_refresh in public/index.html or to setup a default route to go to
some
action controller.

What do you suggest? Can I build a conditional route that sends them to
a
‘Welcome’ controller if not logged in or the “MyApp” controller if
logged
in? Does it make sense to build a ‘Welcome’ controller just for the
ability
to route for it and render content with a view even though there is no
real
functionality and no model?

Thanks for the advice,

Eden


#2

I thumbed through the Agile w/ Rails book recently and it had that
worked
out using filters… There’s a before_filter which let’s you establihs a
routine to run, we’ll, before other things happed… I think putting it
in
your application controller gives it global access.

There may be other ways to do it - not sure.

hth,
/Joe


#3

Joe Tennis wrote:

I thumbed through the Agile w/ Rails book recently and it had that worked
out using filters… There’s a before_filter which let’s you establihs a
routine to run, we’ll, before other things happed… I think putting it in
your application controller gives it global access.

Actually it’s the best way to do, in my opinion. Check this out!

http://wiki.rubyonrails.com/rails/pages/HowToQuicklyDoAuthenticationWithLoginGenerator

Best,
Tom


#4

Joe, Tom,

Thank you both for the tips. I think I understand what you are
suggesting
and will probably do something like that for the overall access control
in
my app.

My confusion is embarrassingly much simpler.

I want a basic “Welcome to my site” page to show up at:

www.mydomain.com

All of the routing and filter examples I see involve sending someone to
a
controller like:

www.mydomain.com/user/login or
www.mydomain.com/mycontroller/myaction

right away.

Is the best way to customize the root level content for my account to
edit
index.html in the public folder? Will I be able to use my layout and
dynamic content (display whether the user is logged in or not)? When I
delete index.html, I get an exception that the controller for “/” could
not
be found. Why can’t I have a top level invisible controller with an
unseen
index action so that I can pull in dynamic content and my site-wide
layouts. I think this must be possible, but I am stuck for now.

Thank you again for your help,

Eden


#5

Eden,

Take a look @ config/routes.rb

In there is an example of how to use the ‘map’ to do just that.

You can have the root of your site routed by hooking up ‘’

– just remember to delete public/index.html.

map.connect ‘’, :controller => “welcome”

Chris Nolan.ca
http://kekova.ca/