2015-10-30 2 views
4

У меня есть массив объектов Active Record. Я хотел бы создать хэш, который служит индексом. Объекты моей активной записи имеют свойства name и value.Включить массив объектов Active Record в хэш

В идеале я хотел бы, чтобы перебрать массив и создать хэш, который будет создавать нечто похожее на:

hash[name] = value 

Какой самый лучший способ для создания массива foo, чтобы создать хэш, похожий на один из приведенных выше ?

ответ

2

Что-то, как это будет работать:

hash = {} 
Model.all.map { |i| hash[i.id] = i } 

hash должен затем оценить, чтобы:

{ 
    :1 => #<ActiveRecord:1>, 
    :2 => #<ActiveRecord:2>, 
    ... 
} 
0

Вы можете использовать метод Hash::[].

relation = Record.where("query") 

Hash[ 
    relation.to_a.map do |obj| 
    [obj.name, obj.value] 
    end 
] 
Смежные вопросы