2012-03-27 7 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 1対多の削除に失敗する

これはバグですか、何か不足していますか?

完全な例は、この主旨に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

答えて

0

を破壊した後のAlphaオブジェクトをリロードすることですこの質問を「未回答」フィルタから削除するには、

答えがベータ

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

を破壊した後のAlphaオブジェクトをリロードすることです〜Craig552uk

関連する問題