Tôi có liên kết sau:Làm thế nào để biết khi nào mô hình tự động bị phá hủy bởi: phụ thuộc =>: phá hủy trong đường ray?
class Parent < ActiveRecord::Base
has_many :children, :dependent => :destroy
before_destroy :do_some_stuff
end
class Child < ActiveRecord::Base
belongs_to :parent
before_destroy :do_other_stuff
end
Tôi muốn biết trong do_other_stuff nếu sự tàn phá đã được kích hoạt bởi phụ thuộc => phá hủy hoặc không phải vì một phần của nó sẽ/sẽ được thực hiện trong do_some_stuff
Tôi đã thử parent.destroyed?
, parent.marked_for_destruction?
, parent.frozen?
nhưng không có tác dụng:/
bất kỳ ý tưởng nào?
Tôi không nghĩ rằng 'parent' sẽ tồn tại khi các đối tượng phụ thuộc đang được phá hủy . Nó đã biến mất rồi. – tadman
Trẻ em bị phá hủy trước khi cha mẹ bị phá hủy. Sẽ không có lá cờ có sẵn trên phụ huynh, afaik. –
@tadman không chính xác. 'parent' tồn tại khi đối tượng phụ thuộc bị hủy, bởi vì các em bị hủy trước khi' parent' bị phá hủy. Lệnh này có vẻ như sau: 'before_destroy' callback được kích hoạt trên' children' trước khi chúng bị hủy, 'children' sau đó bị hủy,' call_destroy' callback được kích hoạt trên 'parent',' parent' rồi cuối cùng bị hủy. Bạn có thể di chuyển logic của những gì bạn đang cố gắng làm vào phương pháp 'do_some_stuff'? – Batkins