[Catalyst] Use of uri_for with CaptureArgs

Alan Hicks ahicks at p-o.co.uk
Mon Feb 18 19:53:36 GMT 2008


Not sure if this is the right place, though it would have helped me =

understand how to use Chained actions more easily as I forget to refer =

to the Advent Calendar.

Alan Hicks wrote:
> Bogdan Lucaciu wrote:
>> On Monday 04 February 2008 14:09:25 Alan Hicks wrote:
>>> MyApp::Controller::Artist::Images
>>> sub images_setup : Chained('/artist/artist_setup') PathPart('images')
>>> CaptureArgs(1)  {}
>>> /artist/*/images/*
>>>
>>>  From within MyApp::Controller::Artist::Images uri_for($id, 'show')
>>> gives http://localhost/artist/images/*/show which does not take into
>>> account the artist id so do I have to build uri_for('/artist',
>>> $artist_id, 'images', $id, 'show') which appears cumbersome.
>>
>> From the documentation of uri_for (perldoc Catalyst): $c->uri_for( =

>> $path, @args?, \%query_values? )
>>
>> If the first element of @args is an arrayref it is treated as a list =

>> of captures to be passed to "uri_for_action"
>>
>> I would do: $c->uri_for( =

>> $c->controller('Artist::Images').action_for('show') , [$artist_id, =

>> $image_id]);
>>
>> this can be shortened by writing an action_uri sub in MyApp.pm: =

>> $c->action_uri( qw/Artist::Images show/, [$artist_id, $image_id]);
>>     =

>> You can read more about uri_for in the calendar article:
>> http://catalyst.perl.org/calendar/2007/13
>>
> =

> Thanks,
> Thought I'd missed something obvious.
> =

> _______________________________________________
> 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.scsys.co.u=
k/
> Dev site: http://dev.catalyst.perl.org/
> =

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Chained.diff
Type: text/x-patch
Size: 1226 bytes
Desc: not available
Url : http://lists.scsys.co.uk/pipermail/catalyst/attachments/20080218/8603=
a343/Chained.bin


More information about the Catalyst mailing list