2012-03-27 6 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 

Aus irgendeinem Grund löscht DataMapper das zugeordnete Beta-Objekt nicht.DataMapper Eins-zu-viele-Löschung fehlgeschlagen

Ist das ein Fehler oder fehlt mir etwas?

Ein komplettes Beispiel ist in diesem Kern https://gist.github.com/2219479

EDIT:

Die Antwort ist das Alpha-Objekt nach der Zerstörung der Beta

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

Wenn Sie mitspielst rekapitulieren die Lösung, wie Sie Ihre eigene Antwort erneut zu laden, ich werde mein löschen Antworten. (Siehe http://meta.stackexchange.com/questions/90263/unanswered-questions-answered-in-comments zur Erläuterung, warum dies hilfreich ist.) Danke! – DreadPirateShawn

Antwort

0

Kopieren der Antwort der editierte Frage neu zu laden Körper, um diese Frage aus dem Filter "Unanswered" zu entfernen:

Die Antwort ist das Alpha-Objekt nach der Zerstörung der Beta

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

~ Antwort pro Craig552uk