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"=>""}, "commit"=>"submit"}

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


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 } end

Then you can call it like you wanted:

@thesaurus[‘fr’] = “Bonjour”