我是rails的新手并试图找出使用Mongoid的关联。
我有一个可以有很多颜色的图片模型,一种颜色可以属于很多图片。查询应该在两个方向上工作(即图片 - >颜色和颜色 - >图片),所以我决定使用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
我想将其设置为当删除与颜色相关的所有图片时,也会删除颜色。我尝试使用destroy和delete依赖,但它们似乎都不起作用。
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自动处理吗?如果没有,我怎样才能编写删除/销毁回调来实现这一目标?