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


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.

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.


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.