attribute name selected in form


I have a form to add terms to a thesaurus table.
I have a drop-down list for the user to select the language (fr, en,
es,), and then a text box to write a term with a code. I want to set
the @thesaurus[whichever language was selected] = term.

How can I say @thesaurus['fr'] = term, where 'fr' was the selected
language in the select box?

  Parameters: { "lang"=>"fr", "thesterm"=>{"term"=>"pigment"=>""},

  Thesterm Create (0.4ms) INSERT INTO `thesterms` (`en`, `fr`, `it`,
`fi`, `sr`, `code`, `refcount`) VALUES('', 'pigment', '', '', '',


I suppose the best way to do this would be to create a row for each word having a column for lang and a column for term.

If you want to do it the way you describe, you could do it like this:

With validation:
@thesaurus.update_attributes params[:lang] => term

Without validation:
@thesaurus.update_attribute params[:lang], term

Without updating:
@thesaurus.attributes = { params[:lang] => term }

Hope this helps.


Or you could make the [] method you mentioned. In your model:

def []=(lang, term)
self.attributes = { lang => term }

Then you can call it like you wanted:

@thesaurus[‘fr’] = “Bonjour”