- for my $name ( keys %$updates ){
- if($object->can($name) && !$self->is_for_column( $name, $updates->{$name} ) ){
-
- # updating relations that that should be done before the row is inserted into the database
- # like belongs_to
- my $info = $object->result_source->relationship_info( $name );
- if( $info and not $info->{attrs}{accessor} eq 'multi'
- and
- _master_relation_cond( $object->result_source, $info->{cond}, $self->_get_pk_for_related( $name ) )
- ){
- my $related_result = $object->related_resultset( $name );
- my $resolved = $self->result_source->resolve_condition(
- $info->{cond}, $name, $object
- );
-# warn 'resolved: ' . Dumper( $resolved ); use Data::Dumper;
- my $sub_object = $related_result->recursive_update( $updates->{$name} );
- $object->set_from_related( $name, $sub_object );
- }
- }
+ for my $name ( keys %pre_updates ) {
+ my $info = $object->result_source->relationship_info($name);
+ $self->_update_relation( $name, $updates, $object, $info );