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
Pour une raison quelconque, DataMapper ne supprime pas l'objet bêta associé.Echec de la suppression un-à-plusieurs de DataMapper
Est-ce un bug ou manque-t-il quelque chose?
Un exemple complet est dans ce point essentiel https://gist.github.com/2219479
EDIT:
La réponse est de recharger l'objet Alpha après avoir détruit la version bêta
puts @alpha.betas.inspect
puts "Destroyed? #{@alpha.betas.first.destroy}"
puts @alpha.betas.reload
puts @alpha.betas.inspect
Si vous êtes jeu pour récapituler la solution que votre réponse, je vais supprimer mon répondre. (Voir http://meta.stackexchange.com/questions/90263/unanswered-question-answered-in-comments pour l'explication de pourquoi cela est utile.) Merci! – DreadPirateShawn