Is it generally preferred to filter a large collection of objects in
memory or in the database. In the case of a single query, I know that
the database is preferred.  But what about multiple filtering based on
atributes?  For example,

    @users = User.find(:all)
      @males = @users.find_all {|user| user if user.gender == 'male'}
      @females = @users.find_all {|user| user if user.gender ==
'female'}

Then these are filtered AGAIN in the view:

<tr>
  <td>males</td>
  <td><%= @males.find_all{|user| user.ethnicity == 'white'}.size %></td>
  <td><%= @males.find_all{|user| user.ethnicity == 'black'}.size %></td>
  <td><%= @males.find_all{|user| user.ethnicity == 'asian'}.size %></td>
  <td><%= @males.find_all{|user| user.ethnicity == 'hispanic'}.size
%></td>
  <td><%= @males.find_all{|user| user.ethnicity == 'other'}.size %></td>
</tr>

My question is - should i hit the database separately for each of these
groups and subgroups, or filter in memory as I am doing now?  Eventually
there could be 100,000+ records.
-- 
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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to