]> Dogcows Code - chaz/p5-DBIx-Class-ResultSet-RecursiveUpdate/commitdiff
skip trying to create a might_have relationship if there is no data to insert
authorJohn Napiorkowski <johnn@John-Napiorkowski-MacBook-Pro.local>
Fri, 2 Apr 2010 16:35:01 +0000 (12:35 -0400)
committerGerda Shank <gerda.shank@gmail.com>
Sun, 4 Apr 2010 19:29:28 +0000 (15:29 -0400)
lib/DBIx/Class/ResultSet/RecursiveUpdate.pm

index 1af66cca62b80357ee7abdc0db53cf7ccc0c759d..eeec84cdd240e2007b07101c2d3cd784f184ce62 100644 (file)
@@ -208,15 +208,17 @@ sub _update_relation {
                     object =>  $object->$name 
                 );
             }
                     object =>  $object->$name 
                 );
             }
-            else{ 
+            else{
                 $sub_object =
                 recursive_update( resultset => $related_result, updates => $sub_updates, resolved => $resolved );
             }
         }
         elsif( ! ref $sub_updates ){
                 $sub_object =
                 recursive_update( resultset => $related_result, updates => $sub_updates, resolved => $resolved );
             }
         }
         elsif( ! ref $sub_updates ){
-            $sub_object = $related_result->find( $sub_updates );
+            $sub_object = $related_result->find( $sub_updates ) 
+             unless (!$sub_updates && ($info->{attrs}{join_type} eq 'LEFT'));
         }
         }
-        $object->set_from_related( $name, $sub_object );
+        $object->set_from_related( $name, $sub_object )
+          unless (!$sub_object && !$sub_updates && ($info->{attrs}{join_type} eq 'LEFT'));
     }
 }
 
     }
 }
 
This page took 0.02271 seconds and 4 git commands to generate.