Managing options for select boxes

When having a select box like:

Select profession:   * Unemployed   * Hooligan   * Canoo

I've on some occasions used a "type" class:

class ProfessionType < BaseType     @types = {}     @types[0] = ProfessionValue.new('Unemployed')     @types[1] = ProfessionValue.new('Hooligan')     @types[2] = ProfessionValue.new('Canoo') end

Where BaseType facilitates some convenience methods (allowing for eg. ProfessionType.HOOLIGAN which returns 1, or returning an array appropriate for generating the options for a select).

This approach works fine, but doesn't feel quite right. An alternative approach could be to just hard code the select box and save the string values directly in the DB. Or one could make a "selectables" table in the DB and model it like:

Selectable < AR::Base   #... convenience methods here ...   def options_for_select     #...   end end

ProfessionSelectable < Selectable end

But this is probably overdoing it, especially if the options are fixed.

I'm curious to know how others treat their options for selects - so what do you do?

Thanks.

Morten

There is no golden hammer. For some fix things I use the method in helper and for some dynamic things usually data is stored in Db somewhere and I think that I have one using data from yaml file. So use as you see fit.

dima