Как запустить обратные вызовы уничтожения для объекта, который является частью модели соединения, которая автоматически удаляет этот объект?

Rails 2.3.8. У меня есть 3 модели: пользователь, источник и подписка.

User  attr_accessible   :source_ids
             has_many   :subscriptions
             has_many   :sources, :through => :subscriptions

Source       has_many   :subscriptions

Subscription belongs_to :user
             belongs_to :source

У меня есть интерфейс, который позволяет пользователю редактировать свои подписки на источник. Он собирает source_ids и создает или удаляет подписку на основе коллекции. Проблема, с которой я столкнулся, заключается в следующем:

«Автоматическое удаление моделей соединения является прямым, никаких обратных вызовов уничтожения не запускается».

Подписки удаляются, а не уничтожаются. У меня есть обратный вызов в модели подписки, который не запускается:

before_destroy do |subscription|
  [Some irrelevant object not to be mentioned].destroy
end

Мой вопрос: как я могу активировать этот обратный вызов, когда подписка автоматически удаляется из-за модели присоединения?

7
задан Brian Tompsett - 汤莱恩 17 July 2015 в 13:49
поделиться