instance method
group_by
Ruby on Rails 2.3.18
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