2012-03-27 69 views
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对象。DataMapper一对多删除失败

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

一个完整的例子是在此要旨https://gist.github.com/2219479

EDIT

答案是破坏贝塔

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

答案如果你是游戏回顾一下解决方案作为自己的答案,我会删除后重新加载阿尔法对象我回答。 (请参阅http://meta.stackexchange.com/questions/90263/unanswered-question-answered-in-comments,了解为什么这会有所帮助。)谢谢! – DreadPirateShawn 2013-10-10 06:32:31

回答

0

复制从所述编辑的问题的答案后重新加载阿尔法对象为了从“未回答”过滤器中删除此问题:

答案是破坏测试版

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

〜每Craig552uk