【发布时间】:2015-08-09 22:59:14
【问题描述】:
当我访问我的嵌套哈希时,会发生一些奇怪的事情。 下面是我的嵌套哈希。
{
"http://example.com"=>{
"a-big_word"=>{
"Another word"=>[]
}
},
"www.example.com"=>{
"a-big_word"=>{
"Another word"=>[]
}
}
}
如果我尝试使用以下内容添加一些内容
hash['www.example.com']['a-big_word']['Another word'] << {"key"=>"value"}
发生这种情况
{
"http://example.com"=>{
"a-big_word"=>{
"Another word"=>[{"key"=>"value"}]
}
},
"www.example.com"=>{
"a-big_word"=>{
"Another word"=>[{"key"=>"value"}]
}
}
}
【问题讨论】:
-
您确定键名吗?您说您使用的是
hash["www.example.com"]["sublink"]["hi"]形式,但正确的形式是hash[:"www.example.com"][:sublink][:hi]看到区别了吗? ...符号! -
你可能会受到另一种语言的影响,比如 JavaScript。在 Ruby 中,当键不是符号时,您应该使用运算符
=>。此外,您得到的是嵌套的Hash而不是a multi-dimensional{name goes here} -
如果键在引号中,它应该总是
[:"key"]吗?我收到undefined method[]=' 为 nil:NilClass` -
那就不要用符号了,太麻烦了。我会发布一个答案。
-
@fguillen 我让我的问题和代码示例更容易理解
标签: ruby-on-rails ruby multidimensional-array hash