2013-03-27 62 views
1

說我有狗,皮帶和車主......如果我摧毀一條皮帶我也想摧毀這條狗..但是如果狗有車主則不會。Rails:dependent =>用條件摧毀

+1

您可以使用該回調after_destroy。有關詳細信息,請參閱[本答案] [1]。 [1]:http://stackoverflow.com/questions/6049806/rails-aciverecord-use-dependent-destroy-on-condition – davidrac 2013-03-27 09:09:32

+0

這是偉大的感謝。 – Abram 2013-03-27 09:11:30

+0

你可以在after_destroy之後調用'self'嗎? – Abram 2013-03-27 09:16:13

回答

1

你不想在這裏使用:dependent => :destroy,而是像before_destroy回調如此:

#leash.rb 

before_destroy :destroy_dog 

def destroy_dog 
    dog.destroy unless dog.owner 
end 
+0

我在想像self.dog.destroy,除非self.dog.owner – Abram 2013-03-27 09:18:26

+0

...但不知道如果你可以調用自我after_destroy – Abram 2013-03-27 09:18:43

+0

yep,before_destroy也許更適合在這裏。相應地更新答案。 – aguynamedloren 2013-03-27 09:24:52