(Hopefully) a quick question about variable scope issues. In one of my
controllers, I have a class variable:
class TestController < ApplicationController
@@testClassVariable = 0
…
The problem is, in my “list” method I’m trying to increment this
variable by one each time, printing it out, but it seems to reset to 0
every time the list method is called:
def list
…
@@testClassVariable += 1
logger.info @@testClassVariable#prints “1” each time
…
end
All the examples I’ve found online tell me this should work, printing
out incrementally higher numbers. Do I have a problem with my scope
that I’m just not understanding? Or are controller classes special
beasts? Any clarification would be greatly appreciated!
If you’re running in development mode, your classes are being reloaded
(effectively ‘reset’) for every request… you might instead want to
consider storing this information in the session hash, or even in the
database itself.
Thank you for both your replies! Jame’s comment about running in
development mode is exactly right I think, and storing the variables in
the session sounds like a great solution. Thanks again!