Удаление дочерних отношений с помощью has_many_and_belongs_to в mongoid

#ruby-on-rails-3.1 #mongoid #model-associations

#ruby-on-rails-3.1 #mongoid #модель-ассоциации

Вопрос:

Я новичок в rails и пытаюсь выяснить ассоциации с помощью Mongoid.

У меня есть модель изображения, которая может иметь много цветов, и один цвет может принадлежать многим изображениям. Запросы должны работать в обоих направлениях (например, Picture -> Colors и Color -> Pictures), поэтому я решил использовать ассоциацию has_many_and_belongs_to.

 Class Picture
  include Mongoid::Document
  has_many_and_belongs_to :colors
 

Теперь модель тегов

 Class Color
  include Mongoid::Document
  has_many_and_belongs_to :pictures
 

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

 p1 = Picture.new
p2 = Picture.new
c = Color.new
p1.colors.push(c)
p2.colors.push(c)

p1.delete # <-- c is still associated with p2. This should not delete c
p2.delete # <-- c has no more associations. It should automatically be deleted now
 

Может ли это автоматически обрабатываться rails? Если нет, как я могу написать обратные вызовы delete / destroy, чтобы это произошло?