instance method
group_by
Ruby on Rails 2.3.18
Since v2.2.3 Last seen in v3.2.22.5Signature
group_by()
Collect an enumerable into sets, grouped by the result of a block. Useful, for example, for grouping records by date.
Example:
latest_transcripts.group_by(&:day).each do |day, transcripts| p "#{day} -> #{transcripts.map(&:class).join(', ')}" end "2006-03-01 -> Transcript" "2006-02-28 -> Transcript" "2006-02-27 -> Transcript, Transcript" "2006-02-26 -> Transcript, Transcript" "2006-02-25 -> Transcript" "2006-02-24 -> Transcript, Transcript" "2006-02-23 -> Transcript"
Source
# File activesupport/lib/active_support/core_ext/enumerable.rb, line 22
def group_by
assoc = ActiveSupport::OrderedHash.new
each do |element|
key = yield(element)
if assoc.has_key?(key)
assoc[key] << element
else
assoc[key] = [element]
end
end
assoc
end
Defined in activesupport/lib/active_support/core_ext/enumerable.rb line 22
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in Enumerable