के रूप में हैश वस्तुओं की सरणी में कनवर्ट एक क्षेत्र के साथ मैं ऑब्जेक्ट की श्रृंखला है:कुंजी
[
#<User id: 1, name: "Kostas">,
#<User id: 2, name: "Moufa">,
...
]
और मैं कुंजी के रूप में id
और वस्तुओं मूल्यों के रूप में के साथ एक हैश में इस परिवर्तित करना चाहते हैं । अभी मैं यह इतना पसंद करते हैं, लेकिन मैं जानता हूँ कि वहाँ एक बेहतर तरीका है:
users = User.all.reduce({}) do |hash, user|
hash[user.id] = user
hash
end
उम्मीद उत्पादन:
{
1 => #<User id: 1, name: "Kostas">,
2 => #<User id: 2, name: "Moufa">,
...
}
@SergioTulentsev, मैं कम से [Enumerable # group_by] (http देख रहा था: // www। ruby-doc.org/core-1.9.3/Enumerable.html#method-i-group_by) और यह लगभग वही था जो मैं ढूंढ रहा हूं। मैंने सोचा कि मूल्यों के लिए सरणी बनाने के बजाय इसका एक संस्करण है, यह अधिक आक्रामक है और केवल एक मान रखता है। – Kostas