hello, I need to group Users depending on their operating systems field "os", so I tried User.find(:all, :group => :os) however, the result is an array having only one user for each os group. I''d like to have ALL the users grouped by :os though One solution is to write User.find(:all).group_by{|u| u.os} However, I wonder if it could be done within the "find" method ? thanks -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
This sounds right to me... find the SQL it generated in your .log and execute it in a mysql console... is the output the same? On Mar 23, 10:21 am, Ayeye Brazov <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> hello, > > I need to group Users depending on their operating systems field "os", > so I tried > > User.find(:all, :group => :os) > > however, the result is an array having only one user for each os group. > I''d like to have ALL the users grouped by :os though > > One solution is to write > > User.find(:all).group_by{|u| u.os} > > However, I wonder if it could be done within the "find" method ? > > thanks > -- > Posted viahttp://www.ruby-forum.com/.--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Mar 23, 2:21 pm, Ayeye Brazov <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> User.find(:all, :group => :os) > > however, the result is an array having only one user for each os group. > I''d like to have ALL the users grouped by :os though > > One solution is to write > > User.find(:all).group_by{|u| u.os} > > However, I wonder if it could be done within the "find" method ?Not really. By definition if you group using the database then you only get back one row for each value of the grouped column - that''s just what group does in database and you want something else. Fred> > thanks > -- > Posted viahttp://www.ruby-forum.com/.--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Mar 23, 11:38 am, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On Mar 23, 2:21 pm, Ayeye Brazov <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> > wrote: > > > User.find(:all, :group => :os) > > > however, the result is an array having only one user for each os group. > > I''d like to have ALL the users grouped by :os though > > > One solution is to write > > > User.find(:all).group_by{|u| u.os} > > > However, I wonder if it could be done within the "find" method ? > > Not really. By definition if you group using the database then you > only get back one row for each value of the grouped column - that''s > just what group does in database and you want something else....such as :order => ''os ASC'' --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
User.find(:all, :order => ''os'') :order sorts ascending by default. You can define the sort order explicitly with ASC or DESC (i.e., ''os ASC'' or ''os DESC''). On Mar 23, 8:21 am, Ayeye Brazov <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> hello, > > I need to group Users depending on their operating systems field "os", > so I tried > > User.find(:all, :group => :os) > > however, the result is an array having only one user for each os group. > I''d like to have ALL the users grouped by :os though > > One solution is to write > > User.find(:all).group_by{|u| u.os} > > However, I wonder if it could be done within the "find" method ? > > thanks > -- > Posted viahttp://www.ruby-forum.com/.--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
>> However, I wonder if it could be done within the "find" method ? > > Not really. By definition if you group using the database then you > only get back one row for each value of the grouped column - that''s > just what group does in database and you want something else. > > FredI see, thanks for that Fred. Thanks all for the replies a. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---