CMS-like routing

I’d like to set up routes like //. Using a route like
map.connect ‘:section/:article’ works just fine, but I’ve also got an
admin area that is accessed through the route ‘admin’.

Inside the admin area I’ve got subpages like admin/sections and
admin/articles. This is conflicting with the other routes and I’m not
able to write something like map.connect ‘admin/:section’, :controller
=> ‘admin/:section’.

Any suggestions on this?

Yep, I have my ‘cms’ like tool setup to do just that. The only way I
got around it is kind of fugly, but it works.

Heres what I have for some map entries…

#map to make sure that all the controllers that need be accessed are
able to, and not
#treated as “pages” in the cms
map.connect “:controller/:action/:id” , :requirements => {
:controller => /admin|any|other|controllers|here/ } “:path/:page”, :controller => ‘page’, :action => ‘view’

Basically I have one controller (pages_controller) that the
users/viewers of the site access and controls the display of the
pages. In your case it would be :sections/:articles but you get the

Also, the order is important! The normal map needs to be above your
section/article map.

Hope this helps!

On 14.2.2006, at 17.49, Frank Wittmann wrote:

Any suggestions on this?
If you put the admin route before the standard one, everything should
work just fine.

Routes are always matched in the order they appear in routes.rb.


Jarkko L.