2014-03-03 143 views
0

我有一个2名员工的业务。每个员工都有很多消息。如何将散列添加到数组?

当我运行命令:

business.employees.each do |employee| 
puts employee.messages.group_by &:from 
end 

我得到正确的输出:

{100=>[#<Message id: 3, content: "Needs more training", from: 100, employee_id: 1>]} 

{101=>[#<Message id: 2, content: "Very lazy.", from: 101, employee_id: 2>], 102=>[#<Message id: 1, content: "Fantastic.", created_at: "2014-03-03 12:01:28", updated_at: "2014-03-03 12:01:28", from: 102, employee_id: 2>]} 

但我不想把我想要添加的每个哈希输出到一个数组等等我可以展示他们。

所以,当我运行命令

grouped_messages = [] 
business.employees.each do |employee| 
grouped_messages << employee.short_messages.group_by &:from 
end 

我得到的错误:expecting keyword_end

+1

尝试不忽略括号。 – sawa

+0

我的第一个想法以及@sawa –

回答

6

你缺少括号,这应该工作:

grouped_messages = [] 
business.employees.each do |employee| 
grouped_messages << employee.short_messages.group_by(&:from) 
end 

一个更好的选择应该是使用map

​​
3

不要省略括号:

grouped_messages << employee.short_messages.group_by(&:from) 
-1

括号缺少周围&:from这是造成错误。将其更改为(&:from)