我的结果应该是这样的:
{ "Jane Doe" => 10, "Jim Doe" => 6 }
我的代码看起来像这样
@user.update_column(:message_count, @message.recipient_username)
我得到这个输出例如:
"Jane Doe"
我不知道如何为此名称指定一个数字,例如:
{ "Jane Doe" => 1 }
当使用相同的recipient_username
返回相同的命令时,该数字应该增加:
@user.update_column(:message_count, @message.recipient_username)
{ "Jane Doe" => 2 }
我想做的最后一件事是,当邮件的recipient_username
为"Jim Doe"
并且此用户名不在哈希中时,应添加例如:
{ "Jane Doe" => 2, "Jim Doe" => 1 }
我读了http://www.ruby-doc.org/core-2.0.0/Hash.html,但我无法转置它。
答案 0 :(得分:1)
这样的东西?
results = Hash.new { 0 }
DATA.readlines.each do |line|
name = line.chomp
results[name] += 1
end
p results
# >> {"John Doe"=>3, "Jane Doe"=>1, "James Dean"=>1, "Jennifer Smith"=>1, ""=>1}
__END__
John Doe
Jane Doe
John Doe
James Dean
Jennifer Smith
John Doe
这将生成具有默认值的新键,并在您开始时递增。