如何将数组拆分成符号?

时间:2014-07-16 11:01:48

标签: ruby-on-rails ruby

我需要使用静态数据和查询返回的数据创建一个哈希,并且不想再调用两次。

例如:

network = {type: "manager", name: Profile.where(id: x.user_id).pluck(:name), email: Profile.where(id: x.user_id).pluck(:email) }

上面的一行有效,但我试着只用一次这样的调用:

network = {type: "manager", (name:, email:) : Profile.where(id: x.user_id).pluck(:name, :email).flatten } # don't work

期望的输出:

profile #=> {:type=>"manager", :name=>"Ruby", :email =>"ruby@blahblahblah.com"}

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

现在我理解你的问题。

你可以做到

network = { type: "manager" }
network.merge Hash[[:name, :email].zip Profile.where(id: x.user_id).pluck(:name, :email).flatten]

答案 1 :(得分:1)

只需将包含姓名和电子邮件的个人资料保存到变量中:

profile = Profile.select(:name, :email).where(id: x.user_id).first

然后将值添加到哈希:

network = {type: "manager", name: profile.name, email: profile.email }