Ruby on Rails: Agrupando Resultados do ActiveRecord

 

Esses dias tive um trabalho para fazer agrupamento de resultados de um find com Rails.

Tenho dois Models: User e Group
onde User belongs_to Group e Group has_many Users
Eu gostaria de Obter o seguinte resultado em um minha busca

[geshi]

{grupo1=>[user1,user2,user8],grupo2=>[user4,user7] ... grupoN=>[userX,userY,... userW]}

[/geshi]

partindo de grupo eu poderia facilmente obter essa organização

[geshi]

Group.all.each do group
     group.users.each do |user|
        #CODE
     end
end

[/geshi]

mas de modo que eu possa filtrar os usuários por data de criação por exemplo:
Usuários Criados entre Data1 e Data2

[geshi]

{grupo1=>[user1],grupo2=>[] ... grupoN=>[userX,userY,... userW]}

[/geshi]

 

A resposta é mais simples do que parece

[geshi]

User.all.group_by(&:grupo)

[/geshi]