Commit da48ccac56745ce349a4fe4bca49025b0335ab89
1 parent
9d41da96
Exists in
master
and in
22 other branches
Fix for Certifier - will set Qualifier as self-declared if destroyed
Showing
2 changed files
with
7 additions
and
3 deletions
Show diff stats
app/models/certifier.rb
@@ -5,12 +5,17 @@ class Certifier < ActiveRecord::Base | @@ -5,12 +5,17 @@ class Certifier < ActiveRecord::Base | ||
5 | has_many :qualifier_certifiers, :dependent => :destroy | 5 | has_many :qualifier_certifiers, :dependent => :destroy |
6 | has_many :qualifiers, :through => :qualifier_certifiers | 6 | has_many :qualifiers, :through => :qualifier_certifiers |
7 | 7 | ||
8 | - has_many :product_qualifiers, :dependent => :destroy | 8 | + has_many :product_qualifiers |
9 | has_many :products, :through => :product_qualifiers, :source => :product | 9 | has_many :products, :through => :product_qualifiers, :source => :product |
10 | 10 | ||
11 | validates_presence_of :environment_id | 11 | validates_presence_of :environment_id |
12 | validates_presence_of :name | 12 | validates_presence_of :name |
13 | 13 | ||
14 | + def destroy | ||
15 | + product_qualifiers.each { |pq| pq.update_attributes! :certifier => nil } | ||
16 | + super | ||
17 | + end | ||
18 | + | ||
14 | def link | 19 | def link |
15 | self[:link] || '' | 20 | self[:link] || '' |
16 | end | 21 | end |
test/unit/manage_products_helper_test.rb
@@ -186,12 +186,11 @@ class ManageProductsHelperTest < ActiveSupport::TestCase | @@ -186,12 +186,11 @@ class ManageProductsHelperTest < ActiveSupport::TestCase | ||
186 | end | 186 | end |
187 | end | 187 | end |
188 | 188 | ||
189 | - should 'product consider its Qualifier self-declared when Certifier is deleted' do | 189 | + should 'delete product Qualifier self-declared when Certifier is deleted' do |
190 | product = fast_create(Product) | 190 | product = fast_create(Product) |
191 | qualifier = fast_create(Qualifier) | 191 | qualifier = fast_create(Qualifier) |
192 | certifier = fast_create(Certifier) | 192 | certifier = fast_create(Certifier) |
193 | ProductQualifier.create!(:product => product, :qualifier => qualifier, :certifier => certifier) | 193 | ProductQualifier.create!(:product => product, :qualifier => qualifier, :certifier => certifier) |
194 | -# The relationship between product, certifiers and qualifiers is extremely complicated | ||
195 | certifier.destroy | 194 | certifier.destroy |
196 | assert_nothing_raised do | 195 | assert_nothing_raised do |
197 | result = display_qualifiers(product) | 196 | result = display_qualifiers(product) |