Miles, You will need dm-constraints to do this.
http://github.com/datamapper/dm-more/tree/next/dm-constraints With this in place, you can do something like has n, :users, :constraint => :destroy You can find all supported constraints in the docs for dm-constraints I should mention though, that the above link is for the next branch aka 0.10.0. If you're using dm-constraints-0.9.11, then there is a bug (probably in extlib) which forces you to add the :constraint option explicitly to *all* your "has" associations (whereas :constraint => :protect should be the default if you leave it out) Which finally brings me to the point I wanted to bring up on this ML for quite some time now. Is this bug fixed in the next branch? The problem with this is the following. Say I'm writing a plugin which adds "has" associations to a model, then (with this behavior/bug) I'm *forced* to add the :constraint option to every call to "has". This isn't really a problem *if* dm would simply ignore this option in case dm-constraints isn't available. However, from what I see in my current app (which actually really confuses me), dm auto_migrates the foreign keys, even though dm-constraints doesn't seem to get loaded !?! Here's what I get when running merb -iv mungo:trippings snusnu$ merb -iv ~ Running bootloaders... Loading init file from /Users/snusnu/projects/github/trippings/config/init.rb Loading /Users/snusnu/projects/github/trippings/config/environments/development.rb ~ Loaded DEVELOPMENT Environment... ~ Expanding RUBY_PATH... ~ loading gem 'merb-core' ... ~ loading gem 'merb-assets' ... ~ loading gem 'merb-cache' ... ~ loading gem 'merb-helpers' ... ~ loading gem 'merb-slices' ... ~ loading gem 'merb-auth-core' ... ~ loading gem 'merb-auth-more' ... ~ Registered slice 'MerbAuthSlicePassword' located at /opt/local/lib/ruby/gems/1.8/gems/merb-auth-slice-password-1.0.11 ~ loading gem 'merb-auth-slice-password' ... ~ loading gem 'merb_datamapper' ... ~ loading gem 'merb-param-protection' ... ~ loading gem 'merb-mailer' ... ~ loading gem 'merb-parts' ... ~ loading gem 'merb-flash' ... ~ loading gem 'data_objects' ... ~ loading gem 'do_sqlite3' ... ~ loading gem 'dm-core' ... ~ loading gem 'do_mysql' ... ~ loading gem 'dm-types' ... ~ loading gem 'dm-validations' ... ~ loading gem 'dm-aggregates' ... ~ loading gem 'dm-migrations' ... ~ loading gem 'dm-timestamps' ... ~ loading gem 'dm-is-remixable' ... ~ loading gem 'dm-is-list' ... ~ loading gem 'dm-is-state_machine' ... ~ loading gem 'dm-is-taggable' ... ~ loading gem 'dm-is-awesome_set' ... ~ loading gem 'dm-paperclip' ... ~ loading gem 'dm-sweatshop' ... ~ loading gem 'dm-is-rateable' ... ~ loading gem 'dm-is-commentable' ... ~ loading gem 'dm-is-localizable' ... ~ loading gem 'dm-accepts_nested_attributes' ... ~ loading gem 'merb_resource_controller' ... ~ loading gem 'texp' ... ~ loading gem 'tzinfo' ... I can't see any dm-constraints in there, however, dm happily adds ALTER TABLE ... ADD CONSTRAINT .. FOREIGN_KEY ... REFERENCES ... ON DELETE .. ON UPDATE when I run DataMapper.auto_migrate! what's happening there :)? cheers snusnu On Tue, May 19, 2009 at 18:13, MilesTogoe <[email protected]> wrote: > > does datamapper support the command: > has n, :users, :dependent => destroy > > I'm getting error on dependent > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "DataMapper" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/datamapper?hl=en -~----------~----~----~----~------~----~------~--~---
