ruby - YAML read should be an Hash not an Array, what's wrong? -


मैं एक YAML फ़ाइल पढ़ रहा हूं:

  लिस्टिंग = YAML.load_file (File.expand_path (....)  

मैं एक ओपन स्ट्रक्चर बनाने पर लिस्टिंग आइटमों को पुनरावृति करने की कोशिश करता हूं

  आइटम = अर्रे.नईव लिस्टिंग.ईच करो | आइटम <मद कोड  

लेकिन यह एक त्रुटि बढ़ा रही है:

  अपरिवर्तित विधि के लिए "प्रत्येक आइटम" , "लेबल 1"]: अर्रे (नोमथिएयर एरर)  

मेरा परीक्षण YAML फ़ाइल है:

  item1: label1 item2: label2  

मैं क्या कर रहा हूँ गलत?

त्रुटि उत्पन्न होती है।

जब आप हैश # प्रत्येक को कॉल करते हैं और इसे आर्टिटी = 1 के साथ ब्लॉक दें, तो ब्लॉक को [key, value] की तरह एक सरणी मिल जाती है। फिर आप गुजर रहे हैं जो कि OpenStruct.new के लिए है, जिसके परिणामस्वरूप आप OpenStruct को एक Array के साथ आरंभ नहीं कर सकते हैं।

मैं क्या < Em> लगता है कि आप चाहते हैं:

<पूर्व> listing.each do | key, मान | आइटम & lt; & lt; वैकल्पिक रूप से, yaml फाइल हो सकती है
  - item1: label1 - item2: label2  

और मेरा मानना ​​है कि कोड उतना ही काम करेगा।

आपकी YAML फाइल को निम्न के लिए deserialized है:

  {item1: "label1" जबकि आइटम को मैंने वर्णित किया है:  
  [[आइटम 1: "लेबल 1"}, {item2: "label2"}  

"लेबल 2"}]


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -