On Wed, Mar 10, 2010 at 7:10 AM, Pedro Melo <[email protected]> wrote:

> Hi,
>
> On Wed, Mar 10, 2010 at 2:37 PM, Bill Moseley <[email protected]> wrote:
> >> On Tue, Mar 9, 2010 at 11:23 PM, Pedro Melo <[email protected]>
> wrote:
> >>    for ( qw/ cascade_delete cascade_copy / ) {
> >>        # Any user-defined value wins
> >>        $options->{$_} = 0 unless exists $options->{$_};
> >>    }
> >
> > I figured I only needed to set it to zero if $options->{$_} was true, but
> I
> > guess it's supposed to be zero, not just false.
>
> The reason I coded it this way was to allow a specific relation to set
> cascade_delete => 1. My code defaults to cascade_delete => 0 but
> allows cascade_delete => 1, but your version seems to force
> cascade_delete => 0 in all cases. So it really depends on what you
> actually want.
>

Oh, "*unless* exists".  Sorry, I assumed you used "if exists".  I'm not sure
"unless exists" works because doesn't DBIC add cascade_delete = 1 by default
to all relationships that can do cascade_delete even if not explicitly set?
 That is, cascade_delete key always exists even when not explicitly set on a
relationship.

My thinking was "if there's a true value for cascade_delete then this is a
relationship that takes "cascade_delete" as a parameter and thus I want to
disable it."

I figured if I needed to turn it back on just for some relationships I'd
have to add something like "really_cascade_delete => 1" and then look for
that in the options hash.


-- 
Bill Moseley
[email protected]
_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[email protected]

Reply via email to