3
class Alpha
  include DataMapper::Resource
  property :id,   Serial
  property :name, String
  has n, :betas
end

class Beta
  include DataMapper::Resource
  property :id,   Serial
  property :name, String
  belongs_to :alpha
end

# Create an Alpha with two Betas
@alpha = Alpha.new(:name => 'A')
@alpha.betas << Beta.new(:name => 'B')
@alpha.betas << Beta.new(:name => 'C')
@alpha.save

puts @alpha.betas.inspect
puts "Destroyed? #{@alpha.betas.first.destroy}"
puts @alpha.betas.inspect

出于某种原因,DataMapper 没有删除关联的 Beta 对象。

这是一个错误还是我错过了什么?

一个完整的例子在这个要点https://gist.github.com/2219479

编辑

答案是摧毁Beta后重新加载Alpha对象

puts @alpha.betas.inspect
puts "Destroyed? #{@alpha.betas.first.destroy}"
puts @alpha.betas.reload
puts @alpha.betas.inspect
4

1 回答 1

0

从已编辑的问题正文中复制答案,以便从“未回答”过滤器中删除此问题:

答案是摧毁Beta后重新加载Alpha对象

puts @alpha.betas.inspect
puts "Destroyed? #{@alpha.betas.first.destroy}"
puts @alpha.betas.reload
puts @alpha.betas.inspect

〜回答每个Craig552uk

于 2013-10-10T06:32:15.790 回答