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]
