collection_select not selecting default value

Hi,

I'm trying to create a dropdown using collection_select. However, I cant
seem to get it to select the right option by default.

In my controller I have a setup like this:

@content = Content.new
@content.selection_id = 3
@selections = Selection.find(:all)

In my view I have:

<% form_for :content, @content, :url => { :action => 'create' } do |f|
%>
    <%= f.collection_select :selection, @selections, :id, :name %>
    <%= submit_tag 'Create' %>
<% end %>

Despite me specifying the default value in the controller,
collection_select doesnt seem to pick that up when rendering the html,
which defaults to the first option in the dropdown.

What idiot-simple thing am I missing? :wink:

Thanks!

g.

Hi,

I'm trying to create a dropdown using collection_select. However, I cant
seem to get it to select the right option by default.

In my controller I have a setup like this:

@content = Content.new
@content.selection_id = 3
@selections = Selection.find(:all)

In my view I have:

<% form_for :content, @content, :url => { :action => 'create' } do |f|
%>
   <%= f.collection_select :selection, @selections, :id, :name %>
   <%= submit_tag 'Create' %>
<% end %>

The first thing that sticks out is it should be :selection_id instead
of :selection.

Despite me specifying the default value in the controller,
collection_select doesnt seem to pick that up when rendering the html,
which defaults to the first option in the dropdown.

What idiot-simple thing am I missing? :wink:

And if that doesn't fix it, then my only other suggestion would be to
make sure you have selection_id set as an integer in the database.
I've accidentally created a foreign key as a string before, which
works fine mostly, except when trying to do a select box and it's
comparing integers to strings.

Hope that helps.

-- Brandon

The first thing that sticks out is it should be :selection_id instead
of :selection.

that fixes it. thanks a million!