我与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
答案 0 :(得分:6)
你缺少括号,这应该有效:
grouped_messages = []
business.employees.each do |employee|
grouped_messages << employee.short_messages.group_by(&:from)
end
更好的选择应该是使用map
:
grouped_messages = business.employees.map do |employee|
employee.short_messages.group_by &:from
end
答案 1 :(得分:3)
不要省略括号:
grouped_messages << employee.short_messages.group_by(&:from)
答案 2 :(得分:-1)
&:from
周围缺少括号,导致错误。将其更改为(&:from)