I''m currently playing around with various URL patterns and I''m a little confused about how routes and the _url helpers work. I''ve read through the AWDWR book (1st edition and current 2nd edition beta book) and I''m still not clear on what''s happening. I''ve been working with variations of the following route: map.competition ''competitions/:short_name/:controller/:action'', :action=>''show'', :requirements=>{:short_name => /([A-Z0-9][-A-Za-z0-9+ ]*)/} (One side question, is there a good way to avoid having to allow both ''+'' and '' '', in the route regexp -- it seems that the _url helpers attempt to match before the string is URL-encoded, while the route dispatch matches before the is URL-decoded?) 1st) The above route appears to fail on modules: http://0.0.0.0:3000/competitions/2007+MIT+Open/register/admin/edit leads to a recognition failed error. http://0.0.0.0:3000/competitions/2007+MIT+Open/register/start and http://0.0.0.0:3000/competitions/2007+MIT+Open/register behave properly. Is there some aspect of modules that only works when its the first component of a route? 2nd) I thought that the _url helpers assume the current controller, however if I don''t explicitly list a controller I end up with a generated URL like: http://0.0.0.0:3000/competitions/2007+MIT+Open//start from a call of competition_url(:action=>''start'', :short_name=>@competition) from a view generated by a URL served by the RegisterController. I don''t really mind having to explicitly add the :controller to my _url helpers, but I''m wondering why it works some places, but not others. Thank you, -- Posted via http://www.ruby-forum.com/.