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?

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) %>