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
To assign default values to a selection criterion, you use the following syntax: SELECT-OPTIONS seltab FOR f DEFAULT g [TO h ].... Default values g and h can be literals or field names. You can only use fields that contain a value when the program is started.
Use the value property to set the value of a select element, e.g. select. value = 'new value' . The value property can be used to set or update the value of a select element. To remove the selection, set the value to an empty string.
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.
Add a parameter :selected =>
<%= 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"), :selected =>f.object.user_group_id) %>
</div>
<%= end %>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With