我有一个嵌套的哈希,我想为其分配一个值,但是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>
我尝试了一些其他语法,但无济于事。任何帮助表示赞赏:)
答案 0 :(得分: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
},