[Catalyst] stripping path parts and then redispatch?
Larry Leszczynski
larryl at emailplus.org
Mon Feb 23 19:21:25 GMT 2009
Hi Jason -
> >>> I have an existing site, and want to add the page language to the URLs
> >>> so that caching will work correctly, e.g. "/foo/bar" would now look like
> >>> "/en/foo/bar" or "/fr/foo/bar".
> >> Apart from the missing true return value from auto, this works:
> >>
> >> http://lists.scsys.co.uk/pipermail/catalyst/2009-February/021072.html
> >
> > Thanks for the pointer. But this approach only seems to work for Local
> > actions, not Private actions like default(). E.g. using these
> > controllers:
> >
> > #------------------------------------------------
> >
> > package MyApp::Controller::Foo;
> > use parent 'Catalyst::Controller';
> >
> > sub default :Private {
> > my ($self, $c, @args) = @_;
> > $c->response->body("Foo args: @args");
> > }
>
> That construct is deprecated. You can do basically the same thing with:
>
> sub default : Path {
> ...
> }
>
> See:
> http://search.cpan.org/dist/Catalyst-Manual/lib/Catalyst/Manual/Intro.pod#Built-in_Private_Actions
Thanks, acknowledged. However, changing "default:Private" to
"default:Path" doesn't solve the problem - the expected argument to
$c->go() for the path "/foo" is still "/foo/default", which is not
obvious just from looking at the path.
Larry
More information about the Catalyst
mailing list