我可以使用":"在ruby哈希

时间:2015-03-25 11:24:36

标签: ruby data-structures hash

目前我正在使用" =>"哈希

registrationData = {
        "webhook_uri" => "http://148.251.44.168:5000"
    }

   puts make_request("webhooks","POST",registrationData)

但我想使用":"而不是" =>"如下面的代码

    registrationData = {
    "webhook_uri": "http://148.251.44.168:5000"
}

但上面的代码会抛出错误

syntax error, unexpected ':', expecting =>
"webhook_uri": "http://148.251.44.168:5000"

但似乎api ony接受这种格式

2 个答案:

答案 0 :(得分:5)

你无法做到。此语法仅适用于Symbol哈希键。您可以做的是允许基于符号的哈希作为make_request方法的参数(或检查它是否已被允许) - 或者使用HashWithIndifferentAccess gem中的activesupport

答案 1 :(得分:3)

你不能在ruby< 2.2。但从2.2.0开始,这实际上是一种有效的语法:

2.2.0 :001 > { 'a': 'b' }
 => {:a=>"b"}

无论如何,将密钥转换为符号。