[Catalyst] RFC: Chained actions with PathPart('.')
Brian Cassidy
brian.cassidy at nald.ca
Thu Mar 22 19:13:49 GMT 2007
Brian Kirkbride wrote:
> Hello all,
>
> The one thing that has been bothering me is that to start a chain in
> some controller, say MyApp::C::Admin::Services you would need to declare:
>
> sub get_id : Chained('/') : PathPart('/admin/services') :
> CaptureArgs(1) {
> # stash the id or do some lookup
> }
>
> It's most likely my ignorance showing, but this seems redundant and not
> very DRY. That's why I'd suggest that PathPart('.') set a chained
> action's PathPart to the namespace on the controller. That way you
> could simply do:
>
> sub get_id : Chained('/') : PathPart('.') : CaptureArgs(1) {}
>
Perhaps you're looking for PathPrefix (coming to a new Catalyst near you
... eventually -- it's in svn now.). For now, do this:
sub _parse_PathPrefix_attr {
my ( $self, $c, $name, $value ) = @_;
return PathPart => $self->path_prefix;
}
sub get_id : Chained('/') PathPrefix CaptureArgs(1) { }
You can put the "_parse_PathPrefix_attr" sub in a base controller and
all of your controllers will have access to it.
-Brian
More information about the Catalyst
mailing list