Commit da48ccac56745ce349a4fe4bca49025b0335ab89
1 parent
9d41da96
Exists in
master
and in
29 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 | 5 | has_many :qualifier_certifiers, :dependent => :destroy |
6 | 6 | has_many :qualifiers, :through => :qualifier_certifiers |
7 | 7 | |
8 | - has_many :product_qualifiers, :dependent => :destroy | |
8 | + has_many :product_qualifiers | |
9 | 9 | has_many :products, :through => :product_qualifiers, :source => :product |
10 | 10 | |
11 | 11 | validates_presence_of :environment_id |
12 | 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 | 19 | def link |
15 | 20 | self[:link] || '' |
16 | 21 | end | ... | ... |
test/unit/manage_products_helper_test.rb
... | ... | @@ -186,12 +186,11 @@ class ManageProductsHelperTest < ActiveSupport::TestCase |
186 | 186 | end |
187 | 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 | 190 | product = fast_create(Product) |
191 | 191 | qualifier = fast_create(Qualifier) |
192 | 192 | certifier = fast_create(Certifier) |
193 | 193 | ProductQualifier.create!(:product => product, :qualifier => qualifier, :certifier => certifier) |
194 | -# The relationship between product, certifiers and qualifiers is extremely complicated | |
195 | 194 | certifier.destroy |
196 | 195 | assert_nothing_raised do |
197 | 196 | result = display_qualifiers(product) | ... | ... |