[Catalyst] Database schema -- Can't locate object method "new" via package

Matt S Trout dbix-class at trout.me.uk
Fri Jun 16 19:34:08 CEST 2006


Sarah Berry wrote:
> As far as documentation, I've been working from the introduction to the 
> DBIx class at 
> http://www.annocpan.org/~MSTROUT/DBIx-Class-0.06999_02/lib/DBIx/Class/Manual/Intro.pod 
> <http://www.annocpan.org/~MSTROUT/DBIx-Class-0.06999_02/lib/DBIx/Class/Manual/Intro.pod> 
> , as well as referencing a great thread from the list archives 
> (http://www.gossamer-threads.com/lists/catalyst/users/7463?search_string=schema%20loader 
> <http://www.gossamer-threads.com/lists/catalyst/users/7463?search_string=schema%20loader>) 
> where there's a detailed example of what files go in what Catalyst 
> folders (Model vs. Schema, etc).
> 
> I put the following command on my page (dbixdemo.pm 
> <http://dbixdemo.pm>), and it rendered fine in the browser:
>               my $schema = $c->model("SLogDB");

my $schema = $c->model("SLogDB")->schema;

> When I tried to follow it up with
>               my $attempt = $schema->resultset('tblsmaps')->find(14);
> I got the error
>       Caught exception in vieSEB::Controller::dbixdemo->default "Can't 
> locate object method "resultset" via package "vieSEB::Model::SLogDB"


why not just do

my $map = $c->model("SLogDB::tblsmaps")->find(14);

?

Also, "tblsmaps" is an awful name for a class. If it's a map class, call it "Map".

> Maybe I have the wrong plugin installed or something. Jess, in your 
> example, what should Foo be? A table in the database? A query you set up 
> somewhere else?
> 
> Thanks again,
> 
> Sarah
> 
> 
> 
> On 6/16/06, *Jess Robinson* <castaway at desert-island.demon.co.uk 
> <mailto:castaway at desert-island.demon.co.uk>> wrote:
> 
> 
> 
>     On Thu, 15 Jun 2006, Kevin Old wrote:
> 
>      > On 6/15/06, Sarah Berry < berry.sarah at gmail.com
>     <mailto:berry.sarah at gmail.com>> wrote:
>      >> I'm trying to learn how to use the database plugins,
>     specifically DBIx. I
>      >> set up my schemas to load from an existing database (hopefully),
>     and now I
>      >> want to test it out to see if I did that right. So I put the
>     following lines
>      >> into a page called dbixdemo.pm <http://dbixdemo.pm>, in the
>     "default" function:
>      >>
>      >>         my $schema = VieSEB::Schema::SLogDB->new();
>      >>         my $crazy_attempt =
>      >> $schema->resultset('SLogDB')->find(14);
>      >
>      > Hi Sarah,
>      >
>      > Make your calls in Controllers like this:
>      >
>      > $c->model("VieSEB::Schema::SLogDB")->new();
>      > $c->model("VieSEB::Schema::SLogDB")->search();
>      > $c->model("VieSEB::Schema::SLogDB")->find();
>      >
> 
>     Or, more sanely:
> 
>     my $schema = $c->model("SLogDB");
>     my $attempt = $schema->resultset('Foo')->find(14);
> 
>     or even:
> 
>     my $attempt = $c->model('SLogDB::Foo')->find(14);
> 
>     You shouldnt need to call ->new, as Catalyst does that for you, and
>     stores
>     the result, which you can retrieve using $c->model.
> 
>     Are there not examples in the Catalyst::Model::DBIC::Schema pod?
> 
>     Jess
> 
> 
>     _______________________________________________
>     List: Catalyst at lists.rawmode.org <mailto:Catalyst at lists.rawmode.org>
>     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: Catalyst at lists.rawmode.org
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/[email protected]/
> Dev site: http://dev.catalyst.perl.org/


-- 
      Matt S Trout       Offering custom development, consultancy and support
   Technical Director    contracts for Catalyst, DBIx::Class and BAST. Contact
Shadowcat Systems Ltd.  mst (at) shadowcatsystems.co.uk for more information

+ Help us build a better perl ORM: http://dbix-class.shadowcatsystems.co.uk/ +



More information about the Catalyst mailing list