Rails controller variable scope from action to action

#rails #ruby #controller variable scope

class UsersController < ActionController
def create
@val1 = “hello”
@val2 = “end”
end

def method1
puts @val1
end

def method2
puts “how can i access other controller action instance variable here”
puts “without using model class instance”

puts @val2
end

end

I am using global variables to store those 2 values wen I call 2nd
action after I call 1st action those are set to nil.

On 17 March 2016 at 22:46, Sai Ch [email protected] wrote:

I am using global variables to store those 2 values wen I call 2nd
action after I call 1st action those are set to nil.

Even if you worked out why that was happening it is not safe, as I
mentioned in my previous post there may be multiple instances of the
server running in production so this would not work.

Colin

On 17 March 2016 at 22:44, Sai Ch [email protected] wrote:

end

def method2
puts “how can i access other controller action instance variable here”
puts “without using model class instance”

puts @val2

You can’t access instance variables setup in a previously called
action as the controller object is re-constructed for each request.
It is possible that the server shut down due to innactivity in the
intervening time, or the requests could even be handled in different
instances of the server (in production there may be multiple instances
running). One way to solve this is to use a before filter to
initialise the variables.

Colin