On Tue, Nov 9, 2010 at 11:38 AM, Eden Cardim <[email protected]> wrote: >>>>>> "David" == David Schmidt <[email protected]> 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.
I tend to put related actions into a controller. E.g.: all actions dealing with artists into the Artists.pm controller and so on. You advise (as I understood) means having an additional controller for every controller where I want to support XHR requests. Is there a flaw in how I lay out my controllers? david _______________________________________________ List: [email protected] Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/[email protected]/ Dev site: http://dev.catalyst.perl.org/
