[Catalyst] PathPart help

Les Fletcher les at affinitycircles.com
Thu Nov 15 21:06:00 GMT 2007


I am using

__PACKAGE__->config->{ namespace } = 'foo';

sub obj_setup :  PathPart('') CaptureArgs(1) {}
sub create_setup : PathPart('') CaptureArgs(0) {}

sub view : PathPart('') Chained('obj_setup') Args(0) {}
sub edit : PathPart('') Chained('obj_setup') Args(0) {}
sub create : PathPart('create') Chained('create_setup') Args(0) { }

The thing I don't understand is that when the Chained actions are 
printed out, it gives me the correct actions as I would expect them.  
The create one just doesn't get matched.

Les

Christopher H. Laco wrote:
> Christopher H. Laco wrote:
>   
>> Les Fletcher wrote:
>>     
>>> I have question about setting up PathPart's and Chaining.  I am trying
>>> to set something that has the following look:
>>>
>>> /namespace/ => This lists out a list of objects
>>> /namespace/<id> => displays detail information about the object with the
>>> numeric id=<id>
>>> /namespace/<id>/edit => brings up a form to edit object with numeric
>>> id=<id>
>>> /namespace/create => brings up a form to create a new object
>>>
>>> When the Chained actions are printed out everything looks fine, but when
>>> I goto "/namespace/create" it matches the "/namespace/<id>" view
>>> action.  Needless to say, there isn't an object with the numeric id of
>>> "create."
>>>
>>> I would like for Catalyst to try and match the explicit PathPart before
>>> matching the wild card that is <id>.  Any thoughts on best ways to get
>>> around this?
>>> A couple of ways I thought of were:
>>>
>>> I could make the view path be "/namespace/<id>/view," it seems a little
>>> weird, but would be acceptable if need be.
>>>
>>> I could have an action that matches "/namespace/*" and then forward to
>>> the create action if "*" is "create" and to the view action other wise,
>>> but this could limit my ability to further chain from here.
>>>
>>> Catalyst just might not match the paths in a way that is conducive to
>>> this, but just thought I'd throw this out there.
>>>
>>> Les
>>>       
>> http://use.perl.org/~LTjake/journal/31738
>>
>> -=Chris
>>     
>
> I use this exact setup, and I assume most do. How is your create
> declared?  sub create : Local {} ?
>
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
> Dev site: http://dev.catalyst.perl.org/
>   



More information about the Catalyst mailing list