Forum: Ruby on Rails newbie... is this possible?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
blunte (Guest)
on 2007-05-07 08:43
(Received via mailing list)
Howdy.

I'm new at Rails, but I think I understand the concept.  Now I'm
trying to map that to what I've done in the past with JSP/Java/Tomcat,
and I have a specific problem I need to solve.

A client likes to have his registered users have their own portal
pages, like "thesite.com/someuser".  In JSP I just added logic to the
404 handling such that if the path name "someuser" was a registered
user in the database, then it would generate a page appropriate for
them.  Then, since this was a referral-based system (in terms of
membership-benefits), if the visitor signed up on someuser's page,
someuser would get credit for it.

How, in Rails, might such a thing be done?  Would it be a hack like
what I did on Tomcat in JSP, with 404 handling?  Or is there some
other facility for _faking_ pages that don't exist?

An example or other explanation of similar systems would be wonderful.

Thanks!
Ben M. (Guest)
on 2007-05-07 09:09
(Received via mailing list)
blunte wrote:
  > A client likes to have his registered users have their own portal
>
I think you'd basically do it the same way. Map an action as the
last-resort action and in there try to look up a user for the path. If
you don't find a user /then/ you do the 404.

Read up on routes.rb... in fact, the comments in the generated routes.rb
might be enough.

b
Daniel -. (Guest)
on 2007-05-07 09:15
(Received via mailing list)
On 5/7/07, Ben M. <removed_email_address@domain.invalid> wrote:
> >
> might be enough.
>
> b


Yes have a look at doing this with routes.

I hesitate to provide an actual route, but if you look at the general
route

map.connect '/:controller/:action/:id'

This shows how you can construct a paraeterized url.

map.connect '/users/:username', :controller => 'users', :action =>
'blah'

would provide the action in users -> blah with the param[:username]

There is great docs on the rubysite for making really complex routes.

HTH
Cheers
Zach I. // LT3media (Guest)
on 2007-05-07 09:22
(Received via mailing list)
In routes:
map.connect ":id", :controller => "users", :action => "show"

put this last. So all your other controllers take precedent

Zach I.
→ Blog — http://www.zachinglis.com
→ Company — http://www.lt3media.com
→ Portfolio — http://portfolio.zachinglis.com
blunte (Guest)
on 2007-05-08 01:30
(Received via mailing list)
Thanks for the good responses!

I'll look into "routes".
This topic is locked and can not be replied to.