[Catalyst] error handling (Chain where ajax and non-ajax actions
chain off)
Eden Cardim
edencardim at gmail.com
Tue Nov 9 10:38:59 GMT 2010
>>>>> "David" == David Schmidt <davewood at gmx.at> writes:
David> Hello list Both ajax and non-ajax actions chain off the same
David> action (base_with_id). If an error occurs (like the resource
David> doesn't exist) I detach to '/error404' in my Root Controller.
David> I just introduced the ajax stuff and before that 'error404'
David> simply rendered an error template. Now I'd like to check if
David> it is an xmlhttp request using
David> http://search.cpan.org/~flora/Catalyst-TraitFor-Request-XMLHttpRequest-0.01/
David> and then either render the error template like before OR use
David> the status_not_found() helper from
David> http://search.cpan.org/~bobtfish/Catalyst-Action-REST-0.87/
David> To use status_not_found I need to extend my Root Controller
David> from Catalyst::Controller::REST
David> That'd mean i have to check the type of request again in my
David> roots end method to avoid rendering of the template.
David> #Root.pm
David> sub render : ActionClass('RenderView') {}
David> sub end :Private {
David> my ($self, $c) = @_;
David> unless ($c->request->is_xhr) {
David> $c->forward('render');
David> }
David> }
David> Any comments on that solution are appreciated as are pointers
David> to alternatives.
Put the ajax code into a separate controller with an XHR-specific end
action (probably empty, for your case) and chain from there.
--
Eden Cardim Need help with your perl Catalyst or DBIx::Class project?
Software Engineer http://www.shadowcat.co.uk/catalyst/
Shadowcat Systems Ltd. Want a managed development or deployment platform?
http://blog.edencardim.com http://www.shadowcat.co.uk/servers/
More information about the Catalyst
mailing list