2012-12-05 14 views

Odpowiedz

31
Table.all.index_by { |t| t.id } 

Lub:

Table.all.index_by(&:id) 

jeśli jesteś na cały zwięzłości rzeczy.

+0

Dzięki Jim! co jeśli chcę wprowadzić modyfikacje na miejscu? –

+1

Nie znam dobrego sposobu na zrobienie tego. Możesz zrobić coś takiego jak 'Hash [Table.all.map {| t | t.something = "override"; [t.id, t]}] '. Są potencjalne okazje, jeśli próbujesz zmieniać rekordy w locie, ale może ci to pomóc. –

+0

Link do dokumentacji: http://api.rubyonrails.org/classes/Enumerable.html#method-i-index_by – sp89

Powiązane problemy