X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FCDBICompat%2FHasA.pm;h=b90d11cf4ab880edfcd8af359b31fda74cbcd5eb;hb=9bc6db133eae500322e0e3670d5509d27d208f9e;hp=e5c2cf04fdf28add03ffcdd91c3c7c14bf401377;hpb=b8e1e21f0fcd55e6e3ce987e57601b279a75b666;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/CDBICompat/HasA.pm b/lib/DBIx/Class/CDBICompat/HasA.pm index e5c2cf0..b90d11c 100644 --- a/lib/DBIx/Class/CDBICompat/HasA.pm +++ b/lib/DBIx/Class/CDBICompat/HasA.pm @@ -43,12 +43,16 @@ sub set_has_a { sub store_has_a { my ($self, $rel, $obj) = @_; - return $self->set_column($rel, $obj) unless ref $obj; + unless (ref $obj) { + delete $self->{_relationship_data}{$rel}; + return $self->store_column($rel, $obj); + } my $rel_obj = $self->_relationships->{$rel}; die "Can't set $rel: object $obj is not of class ".$rel_obj->{class} unless $obj->isa($rel_obj->{class}); $self->{_relationship_data}{$rel} = $obj; - $self->set_column($rel, ($obj->_ident_values)[0]); + #warn "Storing $obj: ".($obj->_ident_values)[0]; + $self->store_column($rel, ($obj->_ident_values)[0]); return $obj; }