Ruby on Rails 3: ¿después del método de destrucción para destruir el objeto si no hay más objetos relacionados en el sistema?

Tengo un pequeño problema, tengo los siguientes 2 modelos:

class CriticalProcess < ActiveRecord::Base



  has_many :authorizations, :dependent => :destroy
  has_many :roles, :through => :authorizations
  after_destroy :check_roles

  def check roles
     cp_roles = self.roles
     cp_roles.each do |role|
       if role.critical_processes.size == 0
          role.destroy
       end
     end
  end
end

class Role < ActiveRecord::Base

  has_many :authorizations
  has_many :critical_processes, :through => :authorizations

end

l rol @So 1 puede pertenecer a muchos procesos críticos, ¿hay alguna forma de hacerlo siTODO los procesos críticos a los que pertenecía el rol debían ser destruidos, ¿entonces para que también se destruyera? Necesito esto porque si todos los PC (procesos críticos) con los que los roles tenían una relación fueran destruidos, entonces el rol también debería destruirse ya que ya no es necesario.

ACTUALIZA

Ahora he creado un método after_destroy que debería eliminar los roles, pero esto no parece funcionar, por alguna razón, después de la depuración utilizando los registros, ¿no está recorriendo la matriz por alguna razón?

¿Por qué es esto

Gracia

Respuestas a la pregunta(2)

Su respuesta a la pregunta