Сбой удаления DataMapper один-ко-многим - PullRequest
3 голосов
/ 27 марта 2012
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 не удаляет связанный бета-объект.

Это ошибка или я что-то упустил?

Полный пример приведен в этой сущности https://gist.github.com/2219479

РЕДАКТИРОВАТЬ :

Ответ заключается в перезагрузке альфа-объекта после уничтожения бета-версии

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

1 Ответ

0 голосов
/ 10 октября 2013

Копирование ответа из отредактированного тела вопроса с целью удаления этого вопроса из фильтра «Без ответа»:

Ответ заключается в перезагрузке объекта Alpha после уничтожения бета-версии

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

~ ответ за Craig552uk

...