ruby - When iterating over hash, getting "TypeError: can't convert String into Integer" -


मेरे पास एक हैश है (वास्तविक एक बहुत बड़ा है)

  parsed = {" Follower_count "= & gt; 500, "कुछ_अल" = & gt; "आदि", "xyz" = & gt; "एबीसी"}   

और चारों ओर लटका एक वर्ग इस तरह दिखता है

  class company attr_accessor: अनुयायियों आरम्भ आरंभ (thehash) @followers = thehash [ इसलिए अंतिम रूप से यह कोड है जो त्रुटि को फेंकता है इससे पहले कि मैं किसी और चीज के बारे में चिंता कर सकता हूं  
  & gt; & gt; Parsed.map {| t | | Company.new (t)} TypeError: स्ट्रिंग को पूर्णांक में (irb) से परिवर्तित नहीं किया जा सकता: 7: में (आईआरबी) से: 7: में (आईआरबी) से 'आरम्भिक': 12: `नया ' (आईआरबी) से: 12: में (आईआरबी) से: 12: में (आईआरबी) से: 12: में (आईआरबी) से `आईपी 'में: जब आप एक हैश पर पुनरावृति करते हैं, तो ब्लॉक को अपनी तर्क के रूप में एक सरणी मिलती है और उस सरणी में (क्रम में) / pre>  

) हैश में एक जोड़ी के लिए कुंजी और मान तो, यहां पर:

  parsed.map {| t | | ...}   

t वास्तव में एक दो तत्व सरणी है और आमतौर पर लिखा है:

  parsed.map {| k , वी | ...}   

फिर, अंदर कंपनी # प्रारंभ करें , आप एक कोड के रूप में t का इलाज कर रहे हैं जब यह वास्तव में एक दो है तत्व सरणी।

आप मानचित्र पर पार्स किए गए पर सभी का उपयोग नहीं करना चाहते हैं, तो आप बस company.new (पार्स)

Comments