0

我有这段代码,可以尝试调试返回到我的服务器的内容:

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

有没有不同的方法来访问这个哈希?因为从我看到的检查显示了描述值。

4

2 回答 2

4

问题

在您给出的示例中,您正在定义一个“描述”的哈希键,但查找的是 :description 键,它不存在。原因是第一个是String,第二个是Symbol。

"description".class
=> String

:description.class
=> Symbol

解决方案

使用字符串查找您的密钥,或者如果您知道您的密钥始终是字符串,则在您的下标上调用 #to_s,但您的下标可能不是。

task['description']
=> "second task"

task[:description.to_s]
=> "second task"
于 2012-06-09T15:48:27.903 回答
1

:description不一样'description'。这应该有效:

puts task['description']
于 2012-06-09T15:40:44.753 回答