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

編集

答えは、ベータを破壊した後にアルファ オブジェクトをリロードすることです。

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

1 に答える 1

0

この質問を「未回答」フィルターから削除するために、編集した質問本文から回答をコピーします。

答えは、ベータを破壊した後にアルファ オブジェクトをリロードすることです。

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 に答える