X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst.pm;fp=lib%2FCatalyst.pm;h=a52b53bc6b5c7c9730a0dcef467124b24408fb51;hb=2ebbf7b954a7c5bf5024a9788728386b37e61e55;hp=6ba42eb8a84dd47fc44ed457a1cbcf91fa27a879;hpb=4dcdaae144e5787f9efd4c72dce35cd97cc69288;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 6ba42eb..a52b53b 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -1295,7 +1295,15 @@ sub uri_for { } my $action = $path; - $path = $c->dispatcher->uri_for_action($action, $captures); + # ->uri_for( $action, \@captures_and_args, \%query_values? ) + if( !@args && $action->number_of_args ) { + my $expanded_action = $c->dispatcher->expand_action( $action ); + + my $num_captures = $expanded_action->number_of_captures; + unshift @args, splice @$captures, $num_captures; + } + + $path = $c->dispatcher->uri_for_action($action, $captures); if (not defined $path) { $c->log->debug(qq/Can't find uri_for action '$action' @$captures/) if $c->debug;