Compreensão [ClassOne, ClassTwo] .each (&: my_method) [duplicate]

Possible Duplicate:
O que significa map (&: name) em Ruby?

Eu estava assistindo a um railscast e vi esse códig

[Category, Product].(&:delete_all)

Em relação à limpeza de um banco de dado

Eu perguntei sobre a linha no IRC e fui informado

(&:delete_all)

foi um atalho para

{|model| model.delete_all}

Eu testei isso com o seguinte

class ClassOne
  def class_method
    puts 1
  end
end

class ClassTwo
  def class_method
    puts 2
  end
end

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

Eu recebi um erro dizendo

Wrong Argument type Symbol (expected Proc)

Eu também tentei

one = ClassOne.new
two = ClassTwo.new

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

Mas isso ainda falhou.

Se eu o modifiquei para ler

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

Tudo funcionou como esperad

Então, o que faz&:delete_all realmente fazer? Os documentos dizemdelete_all é um método, por isso estou confuso sobre o que está acontecendo aqu

questionAnswers(4)

yourAnswerToTheQuestion