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]