2012-10-31 42 views
5

Trong ứng dụng của chúng tôi, chúng tôi đã ghi đè phương thức hủy ActiveRecord để hồ sơ của chúng tôi không bị xóa (để người dùng có thể phục hồi). Giống như vậy:Kích hoạt phụ thuộc:: phá hủy với phương pháp hủy diệt bị ghi đè

def destroy 
    self.is_deleted = true 
    self.save 
    freeze 
end 

Tuy nhiên, điều này dường như đã vô hiệu hóa sự phá hủy phụ thuộc vào các mối quan hệ has_many của chúng tôi. Nói cách khác, nếu destroy được gọi trên đối tượng cha mẹ, các đối tượng con của has_many không bị tiêu diệt (chúng không bị xóa, nghĩa là SQL 'DELETE...', cũng không được gọi là số destroy -method được gọi).

Làm cách nào để kích hoạt sự phá hủy các đối tượng con.

Cảm ơn!

Trả lời

6

Bạn cần kích hoạt cuộc gọi hủy.

def destroy 
    self.is_deleted = true 
    self.save 
    run_callbacks :destroy 
    freeze 
end 
+0

Cảm ơn! Đó là chính xác những gì tôi đã mất tích. :) –

Các vấn đề liên quan