Trong dự án của tôi, chiết khấu có và thuộc về nhiều doanh nghiệp. Tôi có một nguyên tắc gọi lại hiệp hội giảm giá không thể loại bỏ businss cuối cùng của nó (để duy trì rằng luôn luôn có một businss cho mỗi giảm giá):Cách bỏ qua gọi lại liên kết trong tiêu hủy
has_and_belongs_to_many :businesses,
before_remove: :check_count,
def check_count
raise 'Cannot remove latest business!' if businesses.count == 1
end
Tuy nhiên tôi nhận ra rằng tôi sẽ không thể để loại bỏ giảm giá . Kể từ khi tôi làm discount.destroy
, tôi nghĩ rằng nó sẽ cố gắng để loại bỏ các doanh nghiệp, và trong thời hạn sẽ nâng cao lỗi.
Vì vậy, có cách nào đó xung quanh điều này, như một số loại :except
như trong bộ điều khiển?
Kiểm tra tại đây: http://guides.rubyonrails.org/active_record_validations_callbacks.html#skipping-callbacks –