Fold column_info() into columns_info()
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Relationship / HasOne.pm
index 665d131..46e18e3 100644 (file)
@@ -97,12 +97,18 @@ sub _validate_has_one_condition {
     return unless $self_id =~ /^self\.(.*)$/;
 
     my $key = $1;
-    $class->throw_exception("Defining rel on ${class} that includes '$key' but no such column defined here yet")
-        unless $class->result_source_instance->has_column($key);
-    my $column_info = $class->result_source_instance->column_info($key);
-    if ( $column_info->{is_nullable} ) {
-      carp(qq'"might_have/has_one" must not be on columns with is_nullable set to true ($class/$key). This might indicate an incorrect use of those relationship helpers instead of belongs_to.');
-    }
+
+    my $column_info = $class->result_source->columns_info->{$key}
+      or $class->throw_exception(
+        "Defining rel on ${class} that includes '$key' "
+      . 'but no such column defined there yet'
+      );
+
+    carp(
+      "'might_have'/'has_one' must not be used on columns with is_nullable "
+    . "set to true ($class/$key). This almost certainly indicates an "
+    . "incorrect use of these relationship helpers instead of 'belongs_to'"
+    ) if $column_info->{is_nullable};
   }
 }