my $set_meth = "set_${meth}";
my $rs_meth = "${meth}_rs";
+ for ($add_meth, $remove_meth, $set_meth, $rs_meth) {
+ warn "***************************************************************************\n".
+ "The many-to-many relationship $meth is trying to create a utility method called $_. This will overwrite the existing method on $class. You almost certainly want to rename your method or the many-to-many relationship, as your method will not be callable (it will use the one from the relationship instead.) YOU HAVE BEEN WARNED\n".
+ "***************************************************************************\n"
+ if $class->can($_);
+ }
+
$rel_attrs->{alias} ||= $f_rel;
*{"${class}::${meth}_rs"} = sub {
}
my $link_vals = @_ > 1 && ref $_[$#_] eq 'HASH' ? pop(@_) : {};
- my $link = $self->search_related($rel)->new_result({});
+ my $link = $self->search_related($rel)->new_result($link_vals);
$link->set_from_related($f_rel, $obj);
- $link->set_columns($link_vals);
$link->insert();
return $obj;
};