Perl DBIx:Class-找不到模型的源

Perl DBIx:Class-找不到模型的源,perl,orm,dbix-class,Perl,Orm,Dbix Class,我正在尝试使用DBIx:Class。我已经使用DBIx:class::Schema::Loader成功创建了Schema类 我还可以连接到数据库 #!/usr/bin/perl -w use Test::More tests => 5; use_ok('Models::ModelRole'); use_ok('Models::User'); my $model = Models::User->new(); cmp_ok($model->{ModelName}, 'eq',

我正在尝试使用DBIx:Class。我已经使用DBIx:class::Schema::Loader成功创建了Schema类

我还可以连接到数据库

#!/usr/bin/perl -w
use Test::More tests => 5;

use_ok('Models::ModelRole');
use_ok('Models::User');

my $model = Models::User->new();

cmp_ok($model->{ModelName}, 'eq', 'User', 'model name');

ok($model->connect(), "connect"); #works


ok($model->{schema}->resultset('User'));
最后一个测试返回错误消息:

DBIx::Class::Schema::source(): Can't find source for User at ./tests/ModelsTests.pl line 29
这是从DBIx:class::Schema::Loader生成的类的结构:

这是模型用户类:

package Models::User;

use DB::Glued::Schema::Result::User;
use Models::ModelRole;
use Moose;


with 'Models::ModelRole';


sub BUILD {
    my $self = shift;

    $self->{schema} = Glued::Schema::Result::User->new();
    my @name = split('::', __PACKAGE__);
    $self->{ModelName} = $name[-1];
}
1;

我希望这是足够的信息。

模式/模型必须连接到源。DBIC代码仅描述数据及其关系。它对源/连接完全不可知

因此,您必须连接
DB::Glued::Schema
,才能使用该模型。我认为,最好的测试方法是连接到
:内存中的SQLite DB。数据库当然是空的。如果您需要固定装置,有几个选项/方法可以填充它。搜索metapan,如果您这样做

有一个很好的包可以让测试连接对您来说很简单: