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: [email protected]
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/
_______________________________________________
List: [email protected]
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/