Understanding [ClassOne, ClassTwo] .each (&: my_method) [duplicado]

Posible duplicado:
¿Qué significa map (&: name) en Ruby?

staba viendo un railscast y vi este código.

[Category, Product].(&:delete_all)

En lo que respecta a borrar una base de datos.

Pregunté por la línea en IRC y me dijeron que

(&:delete_all)

fue un atajo para

{|model| model.delete_all}

Lo probé con el siguiente

class ClassOne
  def class_method
    puts 1
  end
end

class ClassTwo
  def class_method
    puts 2
  end
end

[ClassOne, ClassTwo].each(&:class_method)

Recibí un error que decía

Wrong Argument type Symbol (expected Proc)

También probé

one = ClassOne.new
two = ClassTwo.new

[one, two].each(&:class_method)

Pero eso todavía falló.

Si lo modifiqué para leer

[one, two].each{|model| model.class_method}

Todo funcionó como se esperaba.

Entonces, ¿qué hace&:delete_all realmente hacer? Los documentos dicendelete_all es un método, así que estoy confundido sobre lo que está sucediendo aquí.

Respuestas a la pregunta(4)

Su respuesta a la pregunta