Как я могу удалить дочерние объекты, когда родительский объект удален в рельсах? - PullRequest
18 голосов
/ 05 февраля 2010

модель:

has_many :b, :dependent => :delete_all

модель b:

belongs_to :a
belongs_to :c

модель c:

has_many :b

Когда я удаляю a, я также хотел бы удалить потомков b's, чтобы они были удалены из любого c's, который может ссылаться на них. Тем не менее, выше не работает. Буду признателен за любую помощь.

1 Ответ

39 голосов
/ 05 февраля 2010

Вроде так:

class Widgets < ActiveRecord::Base
  has_many :whatevers, :dependent => :destroy
end

Обновление

Ваш последний комментарий указывает, что вы используете метод delete () для удаления своих объектов. Это не будет использовать обратные вызовы. Пожалуйста, прочитайте руководство для подробностей.

...