Help with inject, using hash array...

I can't quite figure out how to set up the inject command to do what I
want. (or if it's even possible)

What I'm trying to do:

Create a list of categories from a search of the items table. Count how
many of each category appeared, and output that to the view.

This is the code I have so far:

@categories = @items.collect{|item| ["name"=>,

?> "id"=>]}
=> [[{"name"=>"Cat 1", "id"=>1}], [{"name"=>"Cat 2", "id"=>2}],
[{"name"=>"Cat 2", "id"=>2}], [{"name"=>"Cat 3", "id"=>3}]]

I'm trying to use a modified version of this > list.inject(
{ |h, x| h[x] += 1; h}< to create a @categories containing "name", "id"
and "count".

This is a sample of many things I have tried. (I clearly don't
understand how this command works)

@categories.inject( {|cat| ["name"=>, "id"=>,
"count"=>cat.count += 1]}

Any help appreciated.


At this point, I'm guessing that the collect statment isn't getting the
data in a useful format.....

Any Ideas?


@category_counts =
@items.collect { |item| item.category }.each { |cat|
@category_counts[] += 1 }

this will give you something like

{"cat1" => 3, "cat2" => 5, "cat3" => 10}

in @category_counts

Thanks for the input.

Tried using that, and my

@categories = @items.collect{|item| ["name"=>,

Code with this view code:

<% if @categories -%>
    <% @categories.each do |cat| %>
    <p><a href="search?cat=<%= %>" class="leftnav"> &nbsp;<%= %></a>
       <% if @category_counts -%>
           <%= @category_counts[]%>
        <% end -%>
    <% end %>
<% end -%>

And as I suspected my @categories if not properly formated... :frowning:
I have sofar been unable to format it anyother way...

Thank you for a very clear explination of how inject works.

I'm sure it will be of help, after I figure out how to fix my collect