how to set default value of form_for select

johan picture johan · Mar 7, 2011 · Viewed 14.2k times · Source

I would like to know how to set default value on form_for select.

My code goes like this:

<%= form_for(@user) do |f| %>
 .
 .
 .

 <div class="field">
 <%= f.select(:user_group_id, options_for_select(@user_groups.collect {|p| [ p.name, p.id ] },   "Select Category")) %>
 </div>
<%= end %>

Obviously it would return all the values of the field user_group. On my edit page, I would like to set the default value to whatever value the user have in the user_group. Pls help

Answer

Michelle Tilley picture Michelle Tilley · Mar 7, 2011

You can pass a second option to options_for_select that indicates the selected value.

options_for_select(@user_groups.collect { |p| [p.name, p.id] }, @user.user_group)

Obviously I'm not sure how your models are set up, but if necessary you use a method like find to locate the entry you want.