在mongoid中删除与has_many_and_belongs_to的子关系

时间:2011-10-29 20:27:29

标签: ruby-on-rails-3.1 mongoid model-associations

我是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自动处理吗?如果没有,我怎样才能编写删除/销毁回调来实现这一目标?

0 个答案:

没有答案