[CDBI] Redefine has_many relationship
Matt S Trout
dbix-class at trout.me.uk
Sun Sep 18 15:21:36 BST 2005
On Sat, Sep 17, 2005 at 10:01:01PM -0400, Christopher H. Laco wrote:
> Matt S Trout wrote:
> >On Sat, Sep 17, 2005 at 03:34:43PM -0400, Christopher H. Laco wrote:
> >>What's the solution to this?
> >1) E-mail Tony Bowden and hope he's in a good mood
> >2) Switch to DBIx::Class which doesn't suffer from this fuckup in the first
> > place.
> I'll take this with a few grains of salt because I know you. :-)
> With that said, if you're going to troll the CDBI list, try and do a
> little more than "fsck0Rs CDBI, use DBIC". :-)
That isn't a troll; Class::DBI's refusal to override things in subclasses
is IMO a complete pain, and something that's shot me in the foot many a
time. Admittedly, DBIC's implementation lets you shoot you in the head if you
want to, but at least it does what it's told :)
> Now, for the solution [for me]:
> > undef(*_items);
> > undef(*add_to__items);
> > __PACKAGE__->has_many(_items => $item_class, 'cart');
> That's is the original cart class. Apparently I was trying too hard with
> encantations of *CustomCart::_items and $__PACKAGE__::_items...
Kinda cute, although I worry you're not undef'ing the methods in the package
you think you are - if it's superclass methods it's worrying about overriding
then surely that won't clear them. Are you adding methods to the class you
think you're adding them to?
Matt S Trout Specialists in perl consulting, web development, and
Technical Director UNIX/Linux systems architecture and automation. Mail
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 ClassDBI