将用户对象映射到哈希

时间:2015-04-17 18:17:48

标签: ruby-on-rails

我使用mandrill API发送邮件程序,而to:方法需要采用以下格式:

[{ email: 'someone@email.com', name: 'Bob Bertly' }, { email: 'other@email.com', name: 'Claire Nayo' }]

如何以这种格式自动放置所有用户?我的第一个想法是每个用户都有一个do语句,并将user.name和user.email放在他们的位置,但我无法让它工作。

任何指导都很棒。

2 个答案:

答案 0 :(得分:1)

我建议使用serializable_hash编写类方法:

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

然后你就可以得到所有用户的数组:

User.to_hash

答案 1 :(得分:0)

假设您在'users'变量中有用户列表,并且用户有电子邮件和&名称:

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

将按要求返回一组哈希值。