実行するように渡された古いプロジェクトを取得しようとしていますが、TheSchwartz 用に持っているモデルで問題が発生しています。コードは、オンラインで見つけた同様のことを行う他の多くの例とまったく同じに見えます。コードも非常に単純です。
package MyApp::Model::TheSchwartz;
use Moose;
use namespace::autoclean;
extends 'Catalyst::Model::Adaptor';
__PACKAGE__->config( class => "TheSchwartz" );
sub mangle_arguments
{
my ($self, $args) = @_;
if($args->{databases})
{
if(ref($args->{databases}) eq 'HASH')
{
my %db = %{ $args->{databases} };
$args->{databases} = [ \%db ];
}
}
return %{ $args }
}
1;
私が得るエラーは
Couldn't instantiate component "MyApp::Model::TheSchwartz", "unknown options args, catalyst_component_name, class at /usr/local/share/perl/5.14.2/Catalyst/Model/Adaptor/Base.pm line 27."Compilation failed in require at /usr/local/share/perl/5.14.2/Module/Runtime.pm line 317.
at /usr/local/share/perl/5.14.2/Catalyst/Script/Server.pm line 242.
私は mangle_arguments 関数を削除しようとしました。Moose の使用法を削除し、代わりに「ベースを使用」を使用しようとしました。私はいつも同じエラーになってしまい、エラーメッセージを理解するのに本当に苦労しています。私のコードのどこにもcatalyst_component_nameが定義されていないので、Catalyst::Model::Adaptorから継承する必要がありますが..なぜ機能しないのですか?
編集:
関連する構成セクションは次のとおりです。
<Model::TheSchwartz>
<args>
verbose 1
<databases>
dsn dbi:mysql:host=db.vpn;dbname=theschwartz
user user
pass password
</databases>
</args>
</Model::TheSchwartz>