Options_for_select - how to set the selected value?

Ok, this should be simple but I am finding it’s not and previous
postings don’t seem to shed too much light on this.

I have a select_tag with 4 values pulled in via a helper:

def filter_hours
filter_hours = [
[“1 hour”, 1],
[“24 hours”, 24],
[“7 days”, 168],
[“14 days”, 336],
]
end

The select_tag looks like the following:

select_tag :order_hours, options_for_select(filter_hours, :selected =>
@selected_order_hours)

@selected_order_hours is being set in the controller when the form is
posted. It comes back as either 1, 24, 168, 336 and is definitely
being set as confirmed through logging and printing from the view.

However, the selected valued is never set!

I have tried all combinations of :selected, selected=, etc to no
avail.

What’s wrong?

Thanks,

Scott

Anyone have any ideas on this one?

On 5/11/07, Scott [email protected] wrote:

The select_tag looks like the following:

select_tag :order_hours, options_for_select(filter_hours, :selected =>
@selected_order_hours)

@selected_order_hours is being set in the controller when the form is
posted. It comes back as either 1, 24, 168, 336 and is definitely
being set as confirmed through logging and printing from the view.

However, the selected valued is never set!

It should just be:

options_for_select(filter_hours, @selected_order_hours)

Tried that … doesn’t work. @selected_order_hours is definitely being
set.

Any other ideas?

Thanks,

Scott

Figured it out. Had to change:

select_tag :order_hours, options_for_select(filter_hours,
@selected_order_hours)
to
select_tag :order_hours, options_for_select(filter_hours,
@selected_order_hours.to_i)

Picky picky!

Scott

Scott wrote in post #251131:

Figured it out. Had to change:

select_tag :order_hours, options_for_select(filter_hours,
@selected_order_hours)
to
select_tag :order_hours, options_for_select(filter_hours,
@selected_order_hours.to_i)

Picky picky!

Scott

was stuck on a similar problem, my solution was

<%= f.select :grade, ((1…9).to_a) %>