Can i use a hash on a collection_select? If don't, alternatives.

In my current application, i have food categories: mexican, home made,
japanese, ect
As these categories only have ID and name, no other attributes, i dont
want to create a table on the DB.
My first idea was to create a constant named FOOD_CATEGORIES, that is
has like:
FOOD_CATEGORIES = { 1=>'mexican',
                                       2=>'japanese', ... }
BUT, since the hash doesn't have :id method, i dont know how to use
this constant on a collection_select in my views.

Do you have a better idea?


Maybe options_for_select is what you are looking for.


I dont think so. I want to show a select that shows que values of the
hash but the stored data when you submit a form is the key of that
value un the hash.

I have just found a solution, but using a helper
In application_helper i wrote this function:
  def select_from_hash(object, name, arg)
    select = "<select id=\"#{object}_#{name}\" name=\"#{object}
    arg.each do |i,e|
      select += "<option value=\"#{i}\">#{e}</option>"
    select += "</select>"
And in my views I use it this way (im using Haml):
.field= render :inline=> select_from_hash(:profile, :loved_food,

Works fine but im all ears for other-more-elegant approach.