On Apr 4, 8:38 pm, Chris Habgood <[email protected]> wrote: > I am trying to form a string from values that get passed to the > define_method then take the string and use it either set data in a db or do > a .nil? on it just like any other attribute from the db. >
Like I said, you can use send for this (which allows you to call any method on a object) and update_attributes allows you set any attributes you want given their name and a new value Fred > > > On Sun, Apr 4, 2010 at 2:15 PM, Conrad Taylor <[email protected]> wrote: > > On Sun, Apr 4, 2010 at 11:46 AM, Chris Habgood <[email protected]> wrote: > > >> Is there not a way to form a string convert it to an attribute and then do > >> Model.(string converted to attribute)? > > > Chris, you can do the following: > > > class Dynamic > > > name = foo > > ivar = "@#{name}" # form the string > > > define_method( "#{name}=" ) do |value| > > instance_variable_set( ivar, value ) # create an attribute > > end > > > end > > > Also, you can do the above without using closures by doing > > the following: > > > class Dynamic > > > name = "foo" > > > class_eval %{ > > def #{name} > > @#{name} > > end > > def #{name}=(val) > > @#{name} = val > > end > > } > > > end > > > However, it really depends what you're trying to do because it's not clear > > from the question. > > > Good luck, > > > -Conrad > > >> On Sun, Apr 4, 2010 at 12:59 PM, Chris Habgood <[email protected]>wrote: > > >>> Ok, I was also looking at testing for nil? and stuff as well not only > >>> setting the attr. > > >>> On Sun, Apr 4, 2010 at 12:57 PM, Frederick Cheung < > >>> [email protected]> wrote: > > >>>> On Apr 4, 6:50 pm, Chris Habgood <[email protected]> wrote: > >>>> > Not looking at the value part looking at the attribute part. Is ex > >>>> going to > >>>> > be dynamic to set the attribute name correctly? > > >>>> Take a look at the send method (or in the special case of active > >>>> record you could use update_attributes (or write_attribute and []= if > >>>> you want to operate a level lower)) > > >>>> Fred > > >>>> > On Sun, Apr 4, 2010 at 12:23 PM, Conrad Taylor <[email protected]> > >>>> wrote: > >>>> > > On Sun, Apr 4, 2010 at 9:29 AM, Me <[email protected]> wrote: > > >>>> > >> How would I take the dynamic nature of define_method and also use > >>>> that > >>>> > >> to set attributes: > > >>>> > >> define_method ("#{ex}_method") do > >>>> > >> self.my_db_attribute_ex = value > >>>> > >> end > > >>>> > >> Is there a way to set the attribute part dynamically? > > >>>> > > Me, you would do something like the following: > > >>>> > > define_method( "#{ex}_method" ) do |value| > >>>> > > self.my_db_attribute_ex = value > >>>> > > end > > >>>> > > Good luck, > > >>>> > > -Conrad > > >>>> > >> -- > >>>> > >> 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 > >>>> [email protected]. > >>>> > >> To unsubscribe from this group, send email to > >>>> > >> [email protected]<rubyonrails-talk%2Bunsubscrib > >>>> > >> [email protected]><rubyonrails-talk%2Bunsubscrib > >>>> [email protected]> > >>>> > >> . > >>>> > >> 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 > >>>> [email protected]. > >>>> > > To unsubscribe from this group, send email to > >>>> > > [email protected]<rubyonrails-talk%2Bunsubscrib > >>>> > > [email protected]><rubyonrails-talk%2Bunsubscrib > >>>> [email protected]> > >>>> > > . > >>>> > > 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 [email protected]. > >>>> To unsubscribe from this group, send email to > >>>> [email protected]<rubyonrails-talk%2Bunsubscrib > >>>> [email protected]> > >>>> . > >>>> 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 [email protected]. > >> To unsubscribe from this group, send email to > >> [email protected]<rubyonrails-talk%2Bunsubscrib > >> [email protected]> > >> . > >> 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 [email protected]. > > To unsubscribe from this group, send email to > > [email protected]<rubyonrails-talk%2Bunsubscrib > > [email protected]> > > . > > 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

