From da48ccac56745ce349a4fe4bca49025b0335ab89 Mon Sep 17 00:00:00 2001 From: Rafael Martins Date: Fri, 24 Feb 2012 17:03:31 -0200 Subject: [PATCH] Fix for Certifier - will set Qualifier as self-declared if destroyed --- app/models/certifier.rb | 7 ++++++- test/unit/manage_products_helper_test.rb | 3 +-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/models/certifier.rb b/app/models/certifier.rb index 1ae9469..1db7984 100644 --- a/app/models/certifier.rb +++ b/app/models/certifier.rb @@ -5,12 +5,17 @@ class Certifier < ActiveRecord::Base has_many :qualifier_certifiers, :dependent => :destroy has_many :qualifiers, :through => :qualifier_certifiers - has_many :product_qualifiers, :dependent => :destroy + has_many :product_qualifiers has_many :products, :through => :product_qualifiers, :source => :product validates_presence_of :environment_id validates_presence_of :name + def destroy + product_qualifiers.each { |pq| pq.update_attributes! :certifier => nil } + super + end + def link self[:link] || '' end diff --git a/test/unit/manage_products_helper_test.rb b/test/unit/manage_products_helper_test.rb index 91fb464..af7a6c5 100644 --- a/test/unit/manage_products_helper_test.rb +++ b/test/unit/manage_products_helper_test.rb @@ -186,12 +186,11 @@ class ManageProductsHelperTest < ActiveSupport::TestCase end end - should 'product consider its Qualifier self-declared when Certifier is deleted' do + should 'delete product Qualifier self-declared when Certifier is deleted' do product = fast_create(Product) qualifier = fast_create(Qualifier) certifier = fast_create(Certifier) ProductQualifier.create!(:product => product, :qualifier => qualifier, :certifier => certifier) -# The relationship between product, certifiers and qualifiers is extremely complicated certifier.destroy assert_nothing_raised do result = display_qualifiers(product) -- libgit2 0.21.2