Perl DBIx::尝试使用->;时类未定义值异常;创建()

Perl DBIx::尝试使用->;时类未定义值异常;创建(),perl,model-view-controller,catalyst,dbix-class,Perl,Model View Controller,Catalyst,Dbix Class,我正在尝试使用Catalyst中的DBIx::Class创建新行,代码如下: $c->model('Session')->resultset('UserPreference')->create( { appname => 'rss_reader', username => $username, data => $data,

我正在尝试使用Catalyst中的DBIx::Class创建新行,代码如下:

$c->model('Session')->resultset('UserPreference')->create(
                {
                 appname => 'rss_reader',
                 username => $username,
                 data => $data,
                },
               );
但是,我每次都会遇到这个错误:

Caught exception in App::Controller::rss->dbo "Can't call method "resolve" on an undefined value at /etg/source/Linux/pkg/perl-5.8.8/lib/site_perl/5.8.8/DBIx/Class/Row.pm line 1309."
我看到一些邮件列表谈到,当查询因任何原因(perms、约束等)失败时,这个错误被作为一个不正确的总括错误抛出,但它看起来很好,甚至在DBIC_TRACE=1的情况下运行,我甚至没有在控制台中看到生成的查询

我应该提到,我不认为权限等有什么不好的地方,因为手动使用数据库句柄是有效的:

my $stm=$c->model("Session")->storage->dbh->prepare("insert into user_preferences (username,appname,data) values ('mphillip','rss_reader','cookies')"); $stm->execute(); 

您是否尝试过用
update\u或
代替
create
?如果一行存在,则创建将失败。

在DBIx::Class中将其作为错误报告,至少错误消息应该更友好