Rails应用程序变量生命周期问题

Tat*_*tat 2 ruby variables ruby-on-rails

假设我在应用程序中有一个全局变量用户....像这样:

  # GET /users.xml
  def index
    @users = User.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @users }
    end
  end    
Run Code Online (Sandbox Code Playgroud)

这是否意味着每个请求,都会创建一个新的@user?如果每个请求,一个对象被创建,什么时候会被销毁?此外,如果vistorA进入网站,则会创建一个@userA,并且vistorB会进入网站@userB.vistorA是否有机会获得vistorB的对象(@userB)?此外,对象什么时候会释放?谢谢.

****更新:@users不是全局变量,它是一个实例变量.所以,要跟进一个问题.服务器如何知道哪个@user属于哪个请求?谢谢.

mik*_*kej 5

@users它不是一个全局变量,它是一个实例变量.创建控制器的新实例以处理每个请求,因此@users访问者A和访问者B是独立的.