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? -- 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.
On Sun, Apr 4, 2010 at 9:29 AM, Me <chabgood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 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.
Not looking at the value part looking at the attribute part. Is ex going to be dynamic to set the attribute name correctly? On Sun, Apr 4, 2010 at 12:23 PM, Conrad Taylor <conradwt-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On Sun, Apr 4, 2010 at 9:29 AM, Me <chabgood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 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-/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.
On Apr 4, 6:50 pm, Chris Habgood <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 <conra...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > On Sun, Apr 4, 2010 at 9:29 AM, Me <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org. > >> To unsubscribe from this group, send email to > >> rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscrib e@googlegroups.com> > >> . > >> 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscrib e@googlegroups.com> > > . > > 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@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
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 < frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > > On Apr 4, 6:50 pm, Chris Habgood <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 <conra...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > wrote: > > > On Sun, Apr 4, 2010 at 9:29 AM, Me <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 > 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><rubyonrails-talk%2Bunsubscrib > e@googlegroups.com> > > >> . > > >> 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-/JYPxA39Uh5TLH3MbocFFw@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><rubyonrails-talk%2Bunsubscrib > e@googlegroups.com> > > > . > > > 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-/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.
Is there not a way to form a string convert it to an attribute and then do Model.(string converted to attribute)? On Sun, Apr 4, 2010 at 12:59 PM, Chris Habgood <chabgood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 < > frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > >> >> >> On Apr 4, 6:50 pm, Chris Habgood <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 <conra...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> >> wrote: >> > > On Sun, Apr 4, 2010 at 9:29 AM, Me <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 >> 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><rubyonrails-talk%2Bunsubscrib >> e@googlegroups.com> >> > >> . >> > >> 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org><rubyonrails-talk%2Bunsubscrib >> e@googlegroups.com> >> > > . >> > > 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-/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.
On Sun, Apr 4, 2010 at 10:50 AM, Chris Habgood <chabgood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Not looking at the value part looking at the attribute part. Is ex going > to be dynamic to set the attribute name correctly? > >Chris, you can dynamically set attributes by doing the following: class Dynamic define_method( "some_method=" ) do |value| instance_variable_set( "@some_attribute" , some_value ) end end In Ruby, you can create an attribute by simply doing the following within an instance method: @some_attribute = some_value For example, one can do the following: class Dynamic attr_accessor :foo end variable = Dynamic.new variable.foo = 25 puts variable.foo Good luck, -Conrad On Sun, Apr 4, 2010 at 12:23 PM, Conrad Taylor <conradwt-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> >> On Sun, Apr 4, 2010 at 9:29 AM, Me <chabgood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 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-/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-/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.
On Sun, Apr 4, 2010 at 11:46 AM, Chris Habgood <chabgood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 <chabgood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 < >> frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> >>> >>> >>> On Apr 4, 6:50 pm, Chris Habgood <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 <conra...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> >>> wrote: >>> > > On Sun, Apr 4, 2010 at 9:29 AM, Me <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 >>> 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><rubyonrails-talk%2Bunsubscrib >>> e@googlegroups.com> >>> > >> . >>> > >> 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org><rubyonrails-talk%2Bunsubscrib >>> e@googlegroups.com> >>> > > . >>> > > 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-/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-/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.
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. On Sun, Apr 4, 2010 at 2:15 PM, Conrad Taylor <conradwt-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On Sun, Apr 4, 2010 at 11:46 AM, Chris Habgood <chabgood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 <chabgood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>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 < >>> frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >>> >>>> >>>> >>>> On Apr 4, 6:50 pm, Chris Habgood <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 <conra...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> >>>> wrote: >>>> > > On Sun, Apr 4, 2010 at 9:29 AM, Me <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 >>>> 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><rubyonrails-talk%2Bunsubscrib >>>> e@googlegroups.com> >>>> > >> . >>>> > >> 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org><rubyonrails-talk%2Bunsubscrib >>>> e@googlegroups.com> >>>> > > . >>>> > > 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-/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-/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-/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.
Ok, slightly different question. What is the best way to in a model to dynamically create a method: you use define_method to create a method but how would I do it so I can do something like: m = model.new m.update_my_attrs(true) m.update_me_attrs(false) I have 2 methods that are almost the same except for the naming conventions between the two which update db values which have part of the method name in the attribute.. Which seems like a good place for define_method. On Sun, Apr 4, 2010 at 2:38 PM, Chris Habgood <chabgood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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. > > > On Sun, Apr 4, 2010 at 2:15 PM, Conrad Taylor <conradwt-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > >> On Sun, Apr 4, 2010 at 11:46 AM, Chris Habgood <chabgood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>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 <chabgood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>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 < >>>> frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >>>> >>>>> >>>>> >>>>> On Apr 4, 6:50 pm, Chris Habgood <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 <conra...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> >>>>> wrote: >>>>> > > On Sun, Apr 4, 2010 at 9:29 AM, Me <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 >>>>> 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><rubyonrails-talk%2Bunsubscrib >>>>> e@googlegroups.com> >>>>> > >> . >>>>> > >> 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org><rubyonrails-talk%2Bunsubscrib >>>>> e@googlegroups.com> >>>>> > > . >>>>> > > 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-/JYPxA39Uh5TLH3MbocFFw@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-/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-/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.
On Apr 4, 8:15 pm, Conrad Taylor <conra...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On Sun, Apr 4, 2010 at 11:46 AM, Chris Habgood <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 >Not with Active Record attributes - they''re not instance variables. Fred -- 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@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Apr 4, 8:38 pm, Chris Habgood <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 <conra...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > On Sun, Apr 4, 2010 at 11:46 AM, Chris Habgood <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>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 < > >>> frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > >>>> On Apr 4, 6:50 pm, Chris Habgood <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 <conra...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > >>>> wrote: > >>>> > > On Sun, Apr 4, 2010 at 9:29 AM, Me <chabg...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 > >>>> 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%2Bunsubscrib e@googlegroups.com><rubyonrails-talk%2Bunsubscrib > >>>> e@googlegroups.com> > >>>> > >> . > >>>> > >> 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscrib e@googlegroups.com><rubyonrails-talk%2Bunsubscrib > >>>> e@googlegroups.com> > >>>> > > . > >>>> > > 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@googlegroups.com. > >>>> To unsubscribe from this group, send email to > >>>> rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscrib e@googlegroups.com> > >>>> . > >>>> 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org. > >> To unsubscribe from this group, send email to > >> rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscrib e@googlegroups.com> > >> . > >> 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscrib e@googlegroups.com> > > . > > 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@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.