
orasnita at gmail
Mar 7, 2007, 10:44 PM
Post #9 of 9
(314 views)
Permalink
|
Ok, thank you all for your help. Octavian ----- Original Message ----- From: John Napiorkowski To: The elegant MVC web framework Sent: Wednesday, March 07, 2007 11:23 PM Subject: Re: [Catalyst] reserved words From: John Napiorkowski This is the error message you get if you create a subclass of Catalyst::View that doesn't implement a process() method. It probably doesn't have anything to do with the name of the module... I have tried: perl script/myapp_create.pl view Show After restarting the application, it gives that error. If I do instead: perl script/myapp_create.pl view Html The application works fine after restarting it. Am I doing something wrong? Thanks. Octavian I'd personally be interested in seeing what the generated files look like. Could you attach them in your response (or post them someplace we can see?) Hi, Here is the first one (Show.pm): package TranzactiiBursiere::View::Show; use strict; use warnings; use base 'Catalyst::View'; =head1 NAME TranzactiiBursiere::View::Show - Catalyst View =head1 DESCRIPTION Catalyst View. =head1 AUTHOR A clever guy =head1 LICENSE This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself. =cut 1; And here it is the second one that works (Html.pm): package TranzactiiBursiere::View::Html; use strict; use warnings; use base 'Catalyst::View'; =head1 NAME TranzactiiBursiere::View::Html - Catalyst View =head1 DESCRIPTION Catalyst View. =head1 AUTHOR A clever guy =head1 LICENSE This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself. =cut 1; If I just delete the file Show.pm and restart the server, the program works fine, but if I put it back and restart, it gives that error. I have seen the same thing under Linux and Windows. Thanks. As others have pointed out, when you use $c->forward(...) that target needs a process method. I try to think of modules that I forward to as being implementations of the "Command" design pattern, or part of a Pipeline pattern, instead of a module that is actually instantiated and consumed. At least that's the way I try to make sense of all the different ways you can access Catalyst modules. I'm guessing that the reason Html works is that you actually have a different Html modules or Action somewhere in the path that works correctly, and it is that module and not the new one you are creating that is getting called. When I forward to a view I try to be very explicit like: $c->forward($c->view('html')) || $c->log->error("Can't find the html view."); I find this helps. So try looking in your list of installed components to see if Html is being matched someplace else. Also please let me know what you goal here is, that way maybe we can advise a bit better. Good Luck --John ------------------------------------------------------------------------------ Need Mail bonding? Go to the Yahoo! Mail Q&A for great tips from Yahoo! Answers users. ------------------------------------------------------------------------------ _______________________________________________ List: Catalyst [at] lists Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst [at] lists/ Dev site: http://dev.catalyst.perl.org/
|