[Catalyst] calling detach within begin

Kevin Old kevinold at gmail.com
Thu Nov 29 20:06:56 GMT 2007


Hi Jim,

I'm running into the same situation and wonder if you could elaborate
on what you are doing in your begin method and/or auto method.

Here's my begin:

sub begin : Private {
    my ( $self, $c ) = @_;

    [...]

    if ( $c->stash->{errs} ) {
        $c->stash->{content} = $c->stash->{errs};
        $c->stash->{root_name} = 'errors';
        $c->stash->{key_attr} = 'error';
        $c->forward('V::XMLSimple');
        #$c->detach('V::XMLSimple');
    }

}

I'm doing some validation of parameters in my begin method and if
there are errors I want to immediately break to my XMLSimple view and
stop processing.

Thanks for any help with this,
Kevin

On Jul 16, 2007 5:42 PM, Jim Spath <jspath at pangeamedia.com> wrote:
> Jim Spath wrote:
> > I can't seem to get a detach call within my application's Root begin to
> > work.  While it does seem to stop processing with the begin method,
> > Catalyst continues processing whatever action was specified by the request.
> >
> > I've looked through the docs and it seems like I might need to use auto()?
> >
> > "The auto action is also distinguished by the fact that you can break
> > out of the processing chain by returning 0. If an auto action returns 0,
> > any remaining actions will be skipped, except for end."
> >
> > Should I create an auto() action and forward to the action I was
> > previously detaching to, and return 0?
>
> I've gone ahead and started returning auto and it appears to work.
>
> It might be nice to make a note in the docs somewhere that calling
> detach in begin might not do what you expect and that returning 0 from
> auto is what you should be doing.
>
>
> --
> Jim Spath
>
> _______________________________________________
> List: Catalyst at lists.rawmode.org
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
> Dev site: http://dev.catalyst.perl.org/
>



-- 
Kevin Old
kevin at kevinold.com



More information about the Catalyst mailing list