Я новичок в рельсах и пытаюсь выяснить ассоциации, используя Mongoid.
У меня есть модель Picture, которая может иметь много цветов, и один цвет может принадлежать многим изображениям. Запросы должны работать в обоих направлениях (т.е. Изображение -> Цвета и Цвет -> Изображения), поэтому я решил использовать ассоциацию 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
Может ли это быть автоматически обработано рельсами? Если нет, как я могу написать коллбэки удаления / уничтожения, чтобы это произошло?