Rails如何区分属于不同用户的即时变量

时间:2013-03-06 22:07:21

标签: ruby-on-rails-3

我正在关注实施Facebook API的RailsCast。在User模型中,我有一个方法:

  def facebook
     @facebook ||= Koala::Facebook::API.new(oauth_token)

创建一个即时变量,可以与User模型中的其他方法共享。

我的问题是:

如果我的Rails应用在线有100个用户,每个用户都会创建一个实例@facebook,Rails如何知道哪个@facebook与用户相关联?

2 个答案:

答案 0 :(得分:1)

没有。每次点击链接,发送请求时,网络应用中都没有“在线”这样的内容。对于该请求,将实例化所有类,包括运行您发布的代码。

请求完成后,这些类将被处理掉。

答案 1 :(得分:1)

实例变量与它们所属的对象的实例相关联。

用户与他们自己的User实例进行交互,因为它与其会话或特定请求相关联。使用特定于请求的控制器实例处理请求,这些控制器实际上处理User的特定实例,因此@facebook值。