0

我有一个嵌套哈希,我想为其赋值,但 ruby​​ 一直抱怨它。

哈希:

 data = {
    name: contact.xpath('./span[1]').text.delete("\r\n").strip,
    email: contact.xpath('./a').text,
    offices: [
        postal: contact.text.split("\r\n")[4].strip, 
        tel: /(\d{3}[-\.\s]??\d{3}[-\.\s]??\d{4}|\(\d{3}\)\s*\d{3}[-\.\s]??\d{4}|\d{3}[-\.\s]??\d{4})/.match(contact).to_s     
    ],
    url: url
 }

我的任务

data[:offices][:postal] = ""

错误:

Line 42 - data[:offices][:postal] = "" -- in `[]='
#<TypeError: can't convert Symbol into Integer>

我尝试了一些其他语法,但无济于事。任何帮助表示赞赏:)

4

1 回答 1

2
offices: [
        postal: contact.text.split("\r\n")[4].strip, 
        tel: /(\d{3}[-\.\s]??\d{3}[-\.\s]??\d{4}|\(\d{3}\)\s*\d{3}[-\.\s]??\d{4}|\d{3}[-\.\s]??\d{4})/.match(contact).to_s     
    ],

那不是嵌套哈希。使用花括号:

offices: {
        postal: contact.text.split("\r\n")[4].strip, 
        tel: /(\d{3}[-\.\s]??\d{3}[-\.\s]??\d{4}|\(\d{3}\)\s*\d{3}[-\.\s]??\d{4}|\d{3}[-\.\s]??\d{4})/.match(contact).to_s     
    },
于 2013-05-03T18:34:45.477 回答