我有这段代码,试图调试回到我服务器的内容:
task = JSON.parse(request.body.read)
puts task.inspect
puts 'description hash: '
puts task[:description]
当这段代码运行时,我得到:
{"completed" => false, "task_type" => 0, "description"=> "second task"}
description hash:
nil
是否有不同的方式来访问此哈希?因为从我看到的检查显示了描述值。
答案 0 :(得分:4)
在您给出的示例中,您要定义一个哈希键" description"但是查找:描述键,而不是存在。原因是第一个是String,第二个是Symbol。
"description".class
=> String
:description.class
=> Symbol
要么用字符串查找你的密钥,要么你知道你的密钥总是一个字符串,但是你的下标可能不是。
task['description']
=> "second task"
task[:description.to_s]
=> "second task"
答案 1 :(得分:1)
:description
与'description'
不同。这应该有效:
puts task['description']