On Wednesday, 20 November 2013 12:34:37 UTC-5, Ruby-Forum.com User wrote: > > Hi All, > > I've previously used concerns to extend my models without problems. I'm > now trying to extend all my models in one swell-foop by extending AR > with a concern. In brief, I want to add a class variable to each > individual model using a concern that extends AR. Specifically - I > need to find the where (and how) to define a class variable scoped to a > specific model in my AR extending concern. Is this sane? Possible? > > You don't want a class variable for this - they are shared between all the subclasses. A sample IRB trace:
irb: class Foo >> end ===> nil irb: module Bar >> def wat=(value) >> @@wat = value >> end >> >> def wat >> @@wat >> end >> end ===> nil irb: Foo.send(:include, Bar) ===> Foo irb: f = Foo.new ===> #<Foo:0x00000100b5a008> irb: f.wat = 'huh' ===> "huh" irb: f.wat ===> "huh" irb: class Baz < Foo >> end ===> nil irb: class Baz2 < Foo >> end ===> nil irb: b = Baz.new ===> #<Baz:0x00000100b7ac68> irb: b.wat ===> "huh" irb: b2 = Baz2.new ===> #<Baz2:0x00000100b82580> irb: b2.wat = 'nope' ===> "nope" irb: f.wat ===> "nope" You likely want a class instance variable instead, to avoid the sharing. More details here: http://www.railstips.org/blog/archives/2006/11/18/class-and-instance-variables-in-ruby/ --Matt Jones -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/e451922c-9f53-4aeb-802f-e5dadcb2676b%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.

