Agile Web Development

Build it. Launch it. Love it.

:dependent => :protect option

Adds a new option :protect for the parameter :depends from has_many method. This option forbids destroying records with associated records in a association created with :dependent => :protect option, more or less like ON DELETE RESTRICT SQL statement. If you try to destroy a record with associated records it will raise a ActiveRecord::ReferentialIntegrityProtectionError (defined also in this plugin).

Based on the idea and the code from diego.algorta@gmail.com (don’t mail him if you have problems with the plugin, he only was the ideologist) in Ruby on Rails ticket #3837 (http://dev.rubyonrails.org/ticket/3837).

You can download this plugin at:

http://svn.ruido-blanco.net/dependent_protect/trunk

Author

Daniel Rodríguez Troitiño , based on the ideas and the code from Diego Algorta.

Vitals

Home http://ruido-blanco.net/blog/rails-dependent-protect-plugin-english
Repository http://svn.ruido-blanco.net/dependent_protect/trunk
License Rails' (MIT)
Tags Tag_red
Rating (5 votes)
Owner Daniel Rodríguez Troitiño
Created 7 August 2006

Comments

  • Avatar
    Swartz
    8 August 2006

    The only question I have is how to catch the exception being created?

    I've tried rescue-ing ReferentialIntegrityProtectionError but all i get is the following error:

    uninitialized constant ReferentialIntegrityProtectionError

  • Try with ActiveRecord::ReferentialIntegrityProtectionError.

    All errors defined inside ActiveRecord seems to need fully qualified.

Add a comment