Ruby Forum Ruby on Rails > options_for_select - how to set the selected value?

Posted by Scott (Guest)
on 11.05.2007 21:13
(Received via mailing list)
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
Posted by Scott (Guest)
on 14.05.2007 23:28
(Received via mailing list)
Anyone have any ideas on this one?
Posted by Bob Showalter (Guest)
on 15.05.2007 15:16
(Received via mailing list)
On 5/11/07, Scott <tamosunas@gmail.com> 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)
Posted by Scott (Guest)
on 28.05.2007 00:39
(Received via mailing list)
Tried that ... doesn't work. @selected_order_hours is definitely being
set.

Any other ideas?

Thanks,

Scott
Posted by Scott (Guest)
on 28.05.2007 00:52
(Received via mailing list)
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