मैंरूबी के साथ हैश में कई इंस्टेंस चर बदलने के लिए बेहतर तरीका?
#<Response:0x000... @first = "Charlie", @last=Kelly, ....
के प्रारूप में एक प्रतिक्रिया हो रही है और मैं (सक्रिय व्यापारी के लिए) एक हैश में इस बंद करना होगा। वर्तमान में मैं चर के माध्यम से पाशन कर रहा हूँ और यह कर:
response.instance_variables.each do |r|
my_hash.merge!(r.to_s.delete("@").intern => response.instance_eval(r.to_s.delete("@")))
end
यह काम करता है, यह {:first = "charlie", :last => "kelly"}
उत्पादन होगा, लेकिन यह एक सा hacky और अस्थिर लगता है। क्या ऐसा करने के लिए इससे अच्छा तरीका है ?
संपादित करें: मुझे अभी एहसास हुआ कि मैं उस समीकरण के दूसरे भाग के लिए example_variable_get का उपयोग कर सकता हूं, लेकिन यह अभी भी मुख्य समस्या को छोड़ देता है।
क्या कोई तरीका है कि मैं स्ट्रिंग के बजाय प्रतीक में पहला मान मजबूर कर सकता हूं? मैं इसे प्राप्त करने वाले कोड को स्पर्श नहीं कर सकता, और तार काम नहीं कर रहे हैं। – cbron
निश्चित रूप से, '.symbolize_keys': 'obj.instance_values.symbolize_keys' आपको जाना चाहिए! –
ओ सही आदमी। मैंने उस example_values विधि को फिर से लिखना शुरू कर दिया लेकिन यह आसान तरीका है। ग्रेजी। – cbron