On Sun, May 02, 2010 at 08:21:11PM -0700, Bill Moseley wrote:
> On Thu, Apr 29, 2010 at 2:08 PM, Matt S Trout <[email protected]> wrote:
> 
> > source_name is a proxy through to the result_source_instance in class data.
> >
> > If you don't call
> >
> > __PACKAGE__->table(__PACKAGE__->table);
> >
> > in a subclass to get a new source, you don't have a new source.
> >
> > So you've just set it four times on the same thing and the last one will
> > win.
> >
> 
> Hum, Ok.  You mean this?
> 
> $ cat Track1.pm
> package MyApp::Result::Track1;
> use parent MyApp::Result::Track;
> __PACKAGE__->table(__PACKAGE__->table);
> 1;
> 
> (same for Track2 and Track3)
> 
> position 3, ref=MyApp::Result::Track3 source_name=Track
> position 2, ref=MyApp::Result::Track2 source_name=Track
> position 1, ref=MyApp::Result::Track1 source_name=Track
> 
> How should the subclasses be set up so that I get this back instead:
> 
> position 3, ref=MyApp::Result::Track3 source_name=Track3
> position 2, ref=MyApp::Result::Track2 source_name=Track2
> position 1, ref=MyApp::Result::Track1 source_name=Track1

Er.

You've changed the class with rebless() but not touched the $obj->result_source.

You need to set that to $schema->source($new_class).

-- 
Matt S Trout - Shadowcat Systems - Perl consulting with a commit bit and a clue

http://shadowcat.co.uk/blog/matt-s-trout/   http://twitter.com/shadowcat_mst/

Email me now on mst (at) shadowcat.co.uk and let's chat about how our Catalyst
commercial support, training and consultancy packages could help your team.

_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[email protected]

Reply via email to