> I have a website which has users and each user can creat multiple
> product records. I have the ability to show the associated records under
> the user profile but what I want to do now is on the user index, to
> display a number representing how many products that user has up for
> sale. So basically to count all the records for each user and display on
> the index so that it would look like the following e.g.
> 
> Username  Favourite Console  Games available to trade
> jimmypop01  Playstation 3                      0
> andypandy  Playstation 3                      3
> GoogleMail  Playstation 3                      2
> 
> I was wondering if anyone knows how I would go about doing this.
> 
> All I have managed so far is to display how many records are in that
> table.
> 
> So that people know I have two separate tables for users and games.

Not very efficient, but you could do:

@users.each do |user|
  user.games.count
end

Or in your controller you could do...

@game_counts = Game.count(:group => :user_id)

And then do the necessary lookup in the view to match them up.

Or you could add a "games_count" field to the user model and use the 
:counter_cache option on the relationship so you could do:

@users.each do |user|
  user.games_count
end

If you're going to be showing this a lot, I'd go with the latter.

-philip

-- 
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@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to