ありがちなコード
hash = {}
User.all.each do |u|
date = u.created_at.strftime('%Y%m%d')
hash[date] ||= []
hash[date].push u
end
# {"20160601"=> [#<User:..>...], "20160602" => ... }
Enumerable#group_byを使う
hash = User.all.group_by{|u| u.created_at.strftime('%Y%m%d') }
# {"20160601"=> [#<User:..>...], "20160602" => ... }
Enumerableの機能であるため、ActiveRecordが関係ない場所であっても使える。
集計関数を使う時はActiveRecordのgroupで出来るのだが、それ以外の時はActiveRecordのgroupだけでは解決しにくいので書いてみた。