Modelos anidados y validación principal

Tengo dos modelos.
- Parent tiene mucha Children;
- Parent accept_nested_attributes_for Children;

class Parent < ActiveRecord::Base
  has_many :children, :dependent => :destroy
  accepts_nested_attributes_for :children, :allow_destroy => true
  validates :children, :presence => true
end

class Child < ActiveRecord::Base
  belongs_to :parent
end

Utilizo la validación para validar la presencia de niños para cada padre, por lo que no puedo salvar a los padres sin hijos.

parent = Parent.new :name => "Jose"
parent.save
#=> false
parent.children_attributes = [{:name => "Pedro"}, {:name => "Emmy"}]
parent.save
#=> true

validation funciona. Luego destruiremos a los niños a través de_destroy atributo:

parent.children_attributes = {"0" => {:id => 0, :_destroy => true}}
parent.save
#=> true !!!
parent.reload.children
#=> []

so puedo destruir a todos los niños a través de formularios anidados y la validación pasará.

Realmente eso sucede porque después de eliminar a un niño de mis padres a través de_delete, el método hijos aún devuelve el objeto destruido antes de volver a cargarlo, por lo que la validación pasó:

parent.children_attributes = {"0" => {:id => 0, :_destroy => true}}
parent.save
#=> true !!!
parent.children
#=> #<Child id:1 ...> # It's actually deleted
parent.reload.children
#=> []

¿Es un error?

Cuál es la pregunta. La pregunta es la mejor solución para repararlo. Mi enfoque es agregar un filtro before_destroy aChild para verificar si es el último. Pero hace que el sistema sea complicado.