Hello, 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) -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Hi, 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. /Lasse 2010/6/22 Mlle <emstolfo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>> Hello, > > 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) > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> > . > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
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" /Lasse 2010/6/23 Lasse Bunk <lassebunk-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>> Hi, > > 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. > > /Lasse > > 2010/6/22 Mlle <emstolfo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > > Hello, >> >> 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) >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Talk" group. >> To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org >> To unsubscribe from this group, send email to >> rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> >> . >> For more options, visit this group at >> http://groups.google.com/group/rubyonrails-talk?hl=en. >> >> >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.