collection_select method gives error in Rails 3.1.1

Bhushan Lodha picture Bhushan Lodha · Nov 16, 2011 · Viewed 7.4k times · Source

I have a Model called Category and other Model Product. They have has_many and belongs_to relation. But code in my view

    <p><%= f.collection_select(:product, :category_id, Category.all, :id, :name)%>

is giving me

 undefined method `merge' for :name:Symbol

Any clue what is wrong with it?

Answer

Dylan Markow picture Dylan Markow · Nov 16, 2011

Chances are you have something like this:

<%= form_for @product do |f| %>

Because f is already tied to product, you don't need to include it as your first argument, so it should just be:

<%= f.collection_select :category_id, Category.all, :id, :name %>

Or, you could not use f.:

<%= collection_select :product, :category_id, Category.all, :id, :name %>