2015-04-17 2 views
1

Я посылаю почтовую программу с использованием Mandrill ИПН и к: метод должен быть в следующем формате:Отображение пользовательских объектов хэш

[{ email: '[email protected]', name: 'Bob Bertly' }, { email: '[email protected]', name: 'Claire Nayo' }] 

Как я могу автоматически поместит всех пользователей в этом формате? моя первая мысль заключалась в том, чтобы каждый оператор do выполнял каждый пользователь и помещал user.name и user.email в свои позиции, но я не мог заставить это работать.

Любое руководство было бы удивительным.

ответ

0

Предположив, что у вас есть список пользователей в переменной 'пользователей, и что пользователи имеют электронные почты & имена:

users.map do |user| 
    {email: user.email, name: user.name} 
end 

вернет вам массив хэшей, как просили.

1

Я хотел бы предложить, чтобы написать метод класса, используя serializable_hash так:

def self.to_hash 
    all.to_a.map(&:serializable_hash) 
end 

Тогда вы можете получить массив всех пользователей этим:

User.to_hash