newbie: has_many

I am sorry for the newbie question, but I am really stuck and I can't
work it out. :frowning: Have 2 models. category and product (has_many and
belongs_to).

My routes.rb:
map.resources :categories do |category|
   category.resources :products
end

index in category controller:
def index
   @category = Category.find(params[:id])
   @products = @category.products
end

and then in my index.rhtml:

<% for product in @products %>
<%= product.title %>....
<% end %>

Read:
http://blog.grayproductions.net/articles/the_evils_of_the_for_loop
and change to:

<% @products.each do |product| %>

it will end up with this error:
undefined method `title' for #<Class:0x54eb998>

I am sure the title is column name in my table. I can create a new
product, edit it, delete it, but I am not able to show the data
properly.

Can anyone help me? Thanks in advance.
Peter

You're saying/showing CategoryController, but do you mean ProductsController?

Since the undefined 'title' is attributed to #<Class:...> and not #<Product:...> do you have a naked title somewhere that's being interpreted as a method call on the anonymous view class? Is that the correct line from the view?

-Rob

Rob Biedenharn http://agileconsultingllc.com
Rob@AgileConsultingLLC.com