Как использовать обратные вызовы в has_many через ассоциацию?

У меня есть модель Task, связанная с моделью Project через has_many, и мне нужно манипулировать данными перед удалением/вставкой через ассоциацию.

Поскольку «Автоматическое удаление моделей соединения происходит напрямую, обратные вызовы уничтожения не запускаются. «Я не могу использовать обратные вызовы для этого.

В задаче мне нужны все идентификаторы проекта, чтобы вычислить значение для проекта после сохранения задачи. Как я могу отключить удаление или изменить удаление для уничтожения на has_many через ассоциацию? Какова наилучшая практика для этой проблемы?

class Task
  has_many :project_tasks
  has_many :projects, :through => :project_tasks

class ProjectTask
  belongs_to :project
  belongs_to :task

class Project
  has_many :project_tasks
  has_many :tasks, :through => :project_tasks

23
задан tonymarschall 15 May 2012 в 12:18
поделиться