2013-03-27 4 views
1

Скажите, что у меня есть собаки, поводки и владельцы ... Если я уничтожу поводка, я тоже хочу уничтожить собаку .. но нет, если у собаки есть владелец ..Рельсы: зависимые => уничтожить с условиями

+1

Вы можете использовать обратный вызов after_destroy для этого. Подробнее см. [Этот ответ] [1]. [1]: http://stackoverflow.com/questions/6049806/rails-aciverecord-use-dependent-destroy-on-condition – davidrac

+0

Это большое спасибо. – Abram

+0

Можете ли вы назвать 'self' after_destroy? – Abram

ответ

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

+0

... но не уверен, можете ли вы назвать self after_destroy – Abram

+0

yep, before_destroy, возможно, более уместно здесь. обновленный ответ соответственно. – aguynamedloren

Смежные вопросы