1

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

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

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

我的问题是:

如果我的 Rails 应用程序有 100 个用户在线,每个用户创建一个实例@facebook,Rails 怎么知道哪个@facebook与用户关联?

4

2 回答 2

1

它没有。Web 应用程序中没有“在线”之类的东西,每次单击链接时,都会发送一个请求。对于该请求,所有类都被实例化,包括运行您发布的代码。

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

于 2013-03-06T22:09:30.953 回答
1

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

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

于 2013-03-06T22:10:25.997 回答