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

_______________________________________________
List: [email protected]
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to