Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

This project is archived and is in readonly mode.

Regexp routing problems in 2.2.2 since 2.1.0

#1887

Hi, just upgraded an app from Rails 2.1.0 to 2.2.2 and finding some of my routes stopped working

URL which doesn't match is: http://blah/blog/auth/login

Route is: map.connect 'blog/:controller/:action/:id', :requirements => {:controller => /(auth|asdf)/}

In fact, neither does this match: map.connect 'blog/:controller/:action/:id', :requirements => {:controller => /(auth)/}

But this does: map.connect 'blog/:controller/:action/:id', :requirements => {:controller => /auth/}

So the problem seems to be that "( )" syntax is breaking the regexp parsing. Curiously though the regexp does work for link generation, it's only route recognition which breaks

Can anyone give me a quick workaround for this, quite a lot or routes to alter otherwise...

Reported by Wildgoose · February 5th, 2009 @ 06:06 PM

State: committed
Milestone: none
Assigned to: Michael Koziarski Michael Koziarski
Importance: none

Activity

  1. DHH
    DHH
    • Assigned user set to Michael Koziarski

    February 6th, 2009 @ 01:43 PM

  2. Andrew White
    Andrew White
    • Tag set to actioncontroller, actionpack, patch, routing

    The cause of this is that ControllerSegment is hard coded to return number of captures as 1 and it wraps the regexp in its own set of parentheses.

    Attached is a patch to fix this (test included). There's a related ticket that fixes a similar bug with path segments as well.

    February 7th, 2009 @ 02:58 PM

  3. Wildgoose
    Wildgoose

    Thankyou - much appreciated. Any chance we might see this in the next release?

    February 7th, 2009 @ 09:34 PM

  4. Michael Koziarski
  5. Repository
    Repository
    • State changed from new to committed

    (from [f7a0a394f48a0f21e686f891546d17ce33c7840e]) Remove hardcoded number_of_capturesin ControllerSegment to allow regexp requirements with capturing parentheses

    Signed-off-by: Michael Koziarski michael@koziarski.com [#1887 Regexp routing problems in 2.2.2 since 2.1.0 state:committed] http://github.com/rails/rails/co...

    February 22nd, 2009 @ 02:42 AM