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?
Thanks
On 17 June 2010 12:17, Miguel.camba [email protected] wrote:
Do you have a better idea?
Maybe options_for_select is what you are looking for.
Colin
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}
[#{name}]""
arg.each do |i,e|
select += “<option value=”#{i}">#{e}"
end
select += “”
end
And in my views I use it this way (im using Haml):
.field= render :inline=> select_from_hash(:profile, :loved_food,
CATEGORIES)
Works fine but im all ears for other-more-elegant approach.