- my $related_result = $object->related_resultset( $name );
- my $sub_object = $related_result->recursive_update( $updates->{$name} );
- $object->set_from_related( $name, $sub_object );
+ my $related_result = $self->related_resultset( $name )->result_source->resultset;
+ my $resolved = $self->result_source->resolve_condition(
+ $info->{cond}, $name, $object
+ );
+# warn 'resolved: ' . Dumper( $resolved ); use Data::Dumper;
+ $resolved = undef if $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION == $resolved;
+ if( ref $updates->{$name} eq 'ARRAY' ){
+ for my $sub_updates ( @{$updates->{$name}} ) {
+ my $sub_object = $related_result->recursive_update( $sub_updates, $resolved );
+ }
+ }
+ else {
+ my $sub_object = $related_result->recursive_update( $updates->{$name}, $resolved );
+ $object->set_from_related( $name, $sub_object );
+ }