0

値を割り当てたいネストされたハッシュがありますが、ルビーはそれについて不平を言い続けています。

ハッシュ:

 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 に答える