Commit da48ccac56745ce349a4fe4bca49025b0335ab89
1 parent
9d41da96
Exists in
master
and in
28 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) |