Maneira mais limpa de criar um Hash a partir de uma matriz

Parece que me deparo com isso com muita frequência. Eu preciso criar um Hash a partir de uma matriz usando um atributo de cada objeto na matriz como a chave.

Digamos que eu precise de um hash de exemplo, use objetos ActiveRecord codificados por seus IDs.

ary = [collection of ActiveRecord objects]
hash = ary.inject({}) {|hash, obj| hash[obj.id] = obj }

Outra maneira:

ary = [collection of ActiveRecord objects]
hash = Hash[*(ary.map {|obj| [obj.id, obj]}).flatten]

Dream Way: Eu poderia e poderia criar isso sozinho, mas há alguma coisa no Ruby ou no Rails que irá fazer isso?

ary = [collection of ActiveRecord objects]
hash = ary.to_hash &:id
#or at least
hash = ary.to_hash {|obj| obj.id}

questionAnswers(5)

yourAnswerToTheQuestion